diff --git a/.hgtags b/.hgtags index 2d23acb16f..cbc227f9a4 100644 --- a/.hgtags +++ b/.hgtags @@ -2661,3 +2661,20 @@ f72d49c406c48293e30d774303493e4c8d120bfb v7-4a-004 c624928fbc49408ab932e5c79f5f79e53327d700 v7-4a-007 b3bd43ef012d975cafb7b2a4c41fb78486ee4cc0 v7-4a-008 467efeee8f9e2060891bc718e6aeffaf79eab43b v7-4a-009 +a4e08386a6aa29c5e58302f1650fa2ad3f03b76b v7-4a-010 +ce587b26b8d6bec140af41712bb99c4c73c3bf99 v7-4a-011 +fca6ba0d2d66d38da8ae023e73944a69662c0d66 v7-4a-012 +42d592dbbec3706429e3f3f75c9c394db6b9c1bd v7-4a-013 +08eb573821869727e5951e6586207dfbe5fd982c v7-4a-014 +7a1b782ec64ac55052755ed72ff023093b246d96 v7-4a-015 +4104bed69ea561a105c3db590aa6c75be2a24836 v7-4a-016 +4cbff53717d4920cb64d417c7a603b45519138f1 v7-4a-017 +c6dd0c545e5ca25e0b45fc1dbd7d1cb20642830e v7-4a-018 +bea5eb942011c09a6a8805e6b21079375462a710 v7-4a-019 +fa76be660fa914de79e3856caea8261cc7ab6c5b v7-4a-020 +fc6f4a653265f9e6b3dfa82faf067329dd5044a2 v7-4a-021 +c28202427d71b4460122754884bb548f084c3d7a v7-4a-022 +45b2278e6f461689d068f138428e9f3fdb01615c v7-4a-023 +ba9a11fe25637103e1a77fefbbaed4ac2ff182f9 v7-4a-024 +1b89e3f916c59fbdfdbd31e4d8af8b22274275b2 v7-4a-025 +b3ff17862b4c9d06411bd3c854cfceb77d5b97b6 v7-4a-026 diff --git a/Filelist b/Filelist index 669e705413..b32493337a 100644 --- a/Filelist +++ b/Filelist @@ -694,6 +694,7 @@ LANG_GEN = \ runtime/doc/*-fr.UTF-8.1 \ runtime/doc/*-it.1 \ runtime/doc/*-it.UTF-8.1 \ + runtime/doc/*-ja.UTF-8.1 \ runtime/doc/*-pl.1 \ runtime/doc/*-pl.UTF-8.1 \ runtime/doc/*-ru.1 \ diff --git a/runtime/doc/evim-ja.UTF-8.1 b/runtime/doc/evim-ja.UTF-8.1 new file mode 100644 index 0000000000..1b7a657ebc --- /dev/null +++ b/runtime/doc/evim-ja.UTF-8.1 @@ -0,0 +1,51 @@ +.TH EVIM 1 "2002 February 16" +.SH 名前 +evim \- easy Vim, モードレスエディタ Vim +.SH 書式 +.br +.B evim +[options] [file ..] +.br +.B eview +.SH 説明 +.B eVim +は +.B Vim +を起動して、モードレスエディタとして動作するためのオプションを設定します。 +Vim の動作が point-and-click エディタのような動作になります。 +MS-Windows のメモ帳のような動作です。 +.B eVim +は常に GUI で起動し、メニューとツールバーを表示します。 +.PP +どうしても Vim の操作に馴染めない場合に使ってください。 +編集効率は下がります。 +.PP +.B eview +は同様に、読み込み専用モードで起動します。evim \-R と同じです。 +.PP +引数や Vim についての詳細は vim(1) を参照してください。 +.PP +オプション 'insertmode' が設定され、テキストを直接、入力できるようになりま +す。 +.br +コピーとペーストのキー操作が MS-Windows と同じになるように、マップが設定され +ます。 +CTRL-X が切り取り、CTRL-C がコピー、CTRL-V がペーストです。 +標準の CTRL-V の操作は CTRL-Q に割り当てられます。 +.SH オプション +vim(1) を参照してください。 +.SH ファイル +.TP 15 +/usr/local/lib/vim/evim.vim +eVim の初期化スクリプト。 +.SH 別名 +evim は "gumbies のための Vim" とも呼ばれています。 +evim を使っているあなたはきっと、頭にハンカチをかぶっているのです。 +(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっ +ている。) +.SH 関連項目 +vim(1) +.SH 著者 +.B Vim +のほとんどの機能は Bram Moolenaar が開発し、多くの人が協力しました。 +メニューの Help/Credits を参照してください。 diff --git a/runtime/doc/vim-ja.UTF-8.1 b/runtime/doc/vim-ja.UTF-8.1 new file mode 100644 index 0000000000..a4788b3c48 --- /dev/null +++ b/runtime/doc/vim-ja.UTF-8.1 @@ -0,0 +1,501 @@ +.TH VIM 1 "2006 Apr 11" +.SH 名前 +vim \- Vi IMproved, プログラマのテキストエディタ +.SH 書式 +.br +.B vim +[options] [file ..] +.br +.B vim +[options] \- +.br +.B vim +[options] \-t tag +.br +.B vim +[options] \-q [errorfile] +.PP +.br +.B ex +.br +.B view +.br +.B gvim +.B gview +.B evim +.B eview +.br +.B rvim +.B rview +.B rgvim +.B rgview +.SH 説明 +.B Vim +は Vi 互換のテキストエディタです。 +どのような種類のプレインテキストでも編集できます。 +特に、プログラムの編集に力を発揮します。 +.PP +Vi に多くの改良が加えられています: +多段アンドゥ、マルチウィンドウ、マルチバッファ、構文強調表示、 +コマンドライン編集、ファイル名補完、ヘルプ、ビジュアル選択、などなど。 +.B Vim +と Vi の違いについての要約は ":help vi_diff.txt" を参照してください。 +.PP +.B Vim +の実行中は ":help" コマンドでヘルプを引くことができます。 +下記、オンラインヘルプの項を参照してください。 +.PP +.B Vim +は次のようなコマンドで起動できます。 +.PP + vim file +.PP +正確な書式は次の通りです: +.PP + vim [options] [filelist] +.PP +filelist を省略した場合は、空のバッファが開かれます。 +指定した場合は、以下の四つのうちどれか一つの方法でファイルが開かれます。 +.TP 12 +file .. +ファイルのリスト。 +一番目のファイルがカレントファイルになり、バッファに読み込まれます。 +カーソルは、バッファの一行目に置かれます。 +他のファイルを表示するには ":next" コマンドを使ってください。 +ファイル名がダッシュで始まるファイルを開く場合は、 +filelist の前に "\-\-" を指定してください。 +.TP +\- +ファイルは標準入力から読み込まれます。コマンドは標準エラー (ttyからの入 +力になっているはず) から読み込まれます。 +.TP +\-t {tag} +開くファイルとカーソルの初期位置は "tag" に依存します。goto label の一種です。 +tags ファイルから {tag} が検索され、関連したファイルがカレントファイルになり +ます。そして、関連したコマンドが実行されます。 +これは主に C 言語のファイルを開くときに使われます。その場合 {tag} に関数など +を指定して使います。 +関数を含んでいるファイルが開かれ、その関数の先頭にカーソルが移動する、 +という動作になります。 +詳しくは ":help tag\-commands" を参照してください。 +.TP +\-q [errorfile] +クイックフィックスモードで起動します。 +[errorfile] に指定したファイルが読み込まれ、最初のエラーが表示されます。 +[errorfile] を省略した場合は、オプション 'errorfile' が使われます (初期設定 +は、Amiga では "AztecC.Err"、その他のシステムでは "errors.err" です)。 +":cn" コマンドで次のエラーにジャンプできます。 +詳しくは ":help quickfix" を参照してください。 +.PP +.B Vim +は、起動されたときの実行ファイルの名前によって動作を変えます +(実行ファイルの実体が同じであっても)。 +.TP 10 +vim +"普通" に起動します。標準の状態です。 +.TP +ex +Ex モードで起動します。 +ノーマルモードに切り替えるには ":vi" コマンドを使ってください。 +引数に "\-e" を指定した場合と同じです。 +.TP +view +読み込み専用モードで起動します。ファイルの保存が制限されます。 +引数に "\-R" を指定した場合と同じです。 +.TP +gvim gview +GUI バージョン。 +新しいウィンドウを開いて起動します。 +引数に "\-g" を指定した場合と同じです。 +.TP +evim eview +簡易モードの GUI バージョン。 +新しいウィンドウを開いて起動します。 +引数に "\-y" を指定した場合と同じです。 +.TP +rvim rview rgvim rgview +上記と同じですが、制限モードで起動します。シェルコマンドを実行したり、 +.B Vim +をサスペンドしたりできなくなります。 +引数に "\-Z" を指定した場合と同じです。 +.SH オプション +ファイル名の前でも後ろでも、好きな順番でオプションを指定できます。 +パラメータを必要としない引数は、一つのダッシュにまとめて指定できます。 +.TP 12 ++[num] +一番目のファイルの "num" 行目にカーソルを移動します。 +"num" を省略した場合は、一行目にカーソルが移動します。 +.TP ++/{pat} +一番目のファイルの、最初に {pat} が見つかった行にカーソルが移動します。 +検索パターンについては ":help search\-pattern" を参照してください。 +.TP ++{command} +.TP +\-c {command} +一番目のファイルが読み込まれた後に {command} が実行されます。 +{command} は Ex コマンドとして解釈されます。 +{command} に空白を含める場合は、ダブルクォートで囲んでください (シェルに依存)。 +例: vim "+set si" main.c +.br +Note: "+" と "\-c" は合わせて 10 個まで指定できます。 +.TP +\-S {file} +一番目のファイルが読み込まれた後に {file} が実行されます。 +これは \-c "source {file}" と同じ動作です。 +{file} の先頭が '\-' の場合は使えません。 +{file} が省略された場合は、"Session.vim" が使われます (ただし \-S が最後の引 +数だった場合のみ)。 +.TP +\-\-cmd {command} +"\-c" と同じですが、vimrc を処理する前にコマンドが実行されます。 +これらのコマンドは "\-c" コマンドとは別に、10 個まで指定できます。 +.TP +\-A +アラビア語がサポートされていて、アラビア語キーマップがある場合は、 +アラビア語モードで起動します ('arabic' がオンになります)。 +右横書きのファイルを編集できます。 +サポートされていない場合はエラーメッセージを表示して終了します。 +.TP +\-b +バイナリモード。 +バイナリファイルを編集ためのオプションがいくつか設定されます。 +.TP +\-C +互換モード。'compatible' オプションがオンになります。 + .vimrc ファイルの有無に関わらず、 +.B Vim +の動作が Vi 互換になります。 +.TP +\-d +差分モードで起動します。 +二つか三つの四つのファイルを引数に指定してください。 +指定されたファイルが開かれ、それらのファイルの差分が表示されます。 +vimdiff(1) と同様の動作です。 +.TP +\-d {device} +{device} を端末として開きます。 +Amiga でのみ使います。 +例: +"\-d con:20/30/600/150". +.TP +\-D +デバッグ。スクリプトの最初のコマンドが実行されるところからデバッグモードを開 +始します。 +.TP +\-e +Ex モードで起動します。 +実行ファイルの名前が "ex" の場合と同じです。 +.TP +\-E +改良版 Ex モードで起動します。 +実行ファイルの名前が "exim" の場合と同じです。 +.TP +\-f +フォアグラウンド。GUI バージョンで、プロセスをフォークしなくなります。 +Amiga の場合は、新しいウィンドウで再起動しなくなります。 +メールソフトなどから +.B Vim +を起動して、編集が終わるまで待機したいような場合に使ってください。 +Amiga では、":sh" と "!" コマンドは機能しなくなります。 +.TP +\-\-nofork +フォアグラウンド。GUI バージョンで、プロセスをフォークしなくなります。 +.TP +\-F +ペルシア語がサポートされていて、ペルシア語キーマップがある場合は、 +ペルシア語モードで起動します ('fkmap' と 'rightleft' がオンになります)。 +右横書きのファイルを編集できます。 +サポートされていない場合はエラーメッセージを表示して終了します。 +.TP +\-g +GUI がサポートされている場合は、GUI で起動します。 +サポートされていない場合はエラーメッセージを表示して終了します。 +.TP +\-h +コマンドライン引数やオプションのヘルプを表示して終了します。 +.TP +\-H +ヘブライ語がサポートされていて、ヘブライ語キーマップがある場合は、 +ヘブライ語モードで起動します ('hkmap' と 'rightleft' がオンになります)。 +右横書きのファイルを編集できます。 +サポートされていない場合はエラーメッセージを表示して終了します。 +.TP +\-i {viminfo} +viminfo ファイルを使う設定になっている場合は、初期設定の "~/.viminfo" の代わ +りに、指定されたファイルを設定します。 +"NONE" を指定すると、.viminfo ファイルを使わないように設定できます。 +.TP +\-L +\-r と同じです。 +.TP +\-l +lisp モード。 +オプションの 'lisp' と 'showmatch' がオンになります。 +.TP +\-m +ファイルの変更を不可能にします。 +オプション 'write' がオフになります。 +バッファを変更することはできますが、ファイルを保存することはできません。 +.TP +\-M +変更を不可能にします。オプションの 'modifiable' と 'write' がオフになり、 +ファイルの変更と保存ができなくなります。 +Note: それらのオプションを設定すれば変更できるようになります。 +.TP +\-N +非互換モード。'compatible' オプションがオフになります。 + .vimrc ファイルの有無に関わらず、 +.B Vim +の改良された機能が有効になります。Vi との互換性が少し失われます。 +.TP +\-n +スワップファイルを使用しません。 +クラッシュしてもリカバリできなくなります。 +フロッピーディスクのような非常に低速なメディアのファイルを読み書きするときに +便利です。 +":set uc=0" と設定しても同じです。 +戻すには ":set uc=200" と設定してください。 +.TP +\-nb +NetBeans と接続し、エディタサーバーになります。 +詳しくはヘルプを参照してください。 +.TP +\-o[N] +N 個のウィンドウを水平分割で開きます。 +N を省略した場合は、引数のファイルを個別のウィンドウで開きます。 +.TP +\-O[N] +N 個のウィンドウを垂直分割で開きます。 +N を省略した場合は、引数のファイルを個別のウィンドウで開きます。 +.TP +\-p[N] +N 個のタブページを開きます。 +N を省略した場合は、引数のファイルを個別のタブページで開きます。 +.TP +\-R +読み込み専用モード。 +オプション 'readonly' がオンになります。 +バッファを変更することはできますが、間違ってファイルを上書きしてしまうのを防 +ぐことができます。 +ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてくだ +さい。 +\-R オプションは \-n オプションの効果も含んでいます (下記参照)。 +オプション 'readonly' は ":set noro" でオフにできます。 +詳しくは ":help 'readonly'" を参照してください。 +.TP +\-r +スワップファイルの一覧を表示します。リカバリに関する情報も表示されます。 +.TP +\-r {file} +リカバリモード。 +スワップファイルを使って、クラッシュした編集セッションを復活させます。 +スワップファイルは、ファイル名に ".swp" を加えた名前のファイルです。 +詳しくは ":help recovery" を参照してください。 +.TP +\-s +サイレントモード。"ex" という名前で起動するか、"\-e" オプションの後で +"\-s" オプションが指定された場合のみ。 +.TP +\-s {scriptin} +{scriptin} をスクリプトファイルとして読み込まれます。 +ファイル中の文字列は、手で入力したときと同じように処理されます。 +これは ":source! {scriptin}" と同じ動作です。 +エディタが終了する前にファイルの終わりまで読み込んだ場合、 +それ以降はキーボードから入力を読み込みます。 +.TP +\-T {terminal} +端末の名前を指定します。 +端末が自動的に認識されない場合に使ってください。 +Vim が組み込みでサポートしている名前か、 +termcap または terminfo ファイルで定義されている名前を指定してください。 +.TP +\-u {vimrc} +{vimrc} ファイルを使って初期化します。 +他の初期化処理はスキップされます。 +特殊なファイルを編集する場合などに使ってください。 +すべての初期化をスキップするには "NONE" を指定してください。 +詳しくは ":help initialization" を参照してください。 +.TP +\-U {gvimrc} +{gvimrc} ファイルを使って GUI を初期化します。 +他の GUI の初期化はスキップされます。 +すべての GUI の初期化をスキップするには "NONE" を指定してください。 +詳しくは ":help gui\-init" を参照してください。 +.TP +\-V[N] +冗長モード。スクリプトファイルを実行したり viminfo ファイルを読み書きするた +びにメッセージを表示します。N に指定した数値が 'verbose' に設定されます。 +省略した場合は 10 になります。 +.TP +\-v +Vi モードで起動します。 +実行ファイルの名前が "vi" の場合と同じです。 +実行ファイルの名前が "ex" の場合だけ効果があります。 +.TP +\-w {scriptout} +入力した文字を {scriptout} に記録します。 +"vim \-s" や "source!" で実行するためのスクリプトファイルを作成するのに便利 +です。 +{scriptout} ファイルがすでに存在した場合は追加保存されます。 +.TP +\-W {scriptout} +\-w と同じですが、ファイルがすでに存在した場合は上書きされます。 +.TP +\-x +ファイルを暗号化して書き込みます。暗号化キーの入力プロンプトが表示されます。 +.TP +\-X +X サーバーと通信しません。端末での起動時間を短くできます。 +しかし、ウィンドウタイトルの変更やクリップボードは使えなくなります。 +.TP +\-y +簡易モードで起動します。 +実行ファイルの名前が "evim" や "eview" の場合と同じです。 +.B Vim +の動作がモードレスエディタ (click-and-type editor) のようになります。 +.TP +\-Z +制限モード。 +実行ファイルの名前が "r" で始まっている場合と同じです。 +.TP +\-\- +オプション指定の末尾を示す記号です。 +これ以降の引数はすべてファイル名として扱われます。 +ファイル名が '\-' で始まっているファイルを開くときに使ってください。 +.TP +\-\-echo\-wid +GTK GUI のみ: Window ID を標準出力に出力します。 +.TP +\-\-help +ヘルプを表示して終了します。"\-h" と同じです。 +.TP +\-\-literal +引数のファイル名をリテラル文字列として扱います。ワイルドカードを展開しませ +ん。Unix のように、シェルがワイルドカードを展開する場合は機能しません。 +.TP +\-\-noplugin +プラグインをロードしません。\-u NONE はこの動作を含んでいます。 +.TP +\-\-remote +Vim サーバーと通信し、引数に指定されたファイルを Vim サーバーで開きます。 +サーバーが存在しない場合は、エラーメッセージを表示され、起動中の Vim でファ +イルが開かれます。 +.TP +\-\-remote\-expr {expr} +Vim サーバーと通信し、{expr} に与えられた式を Vim サーバーで実行し、結果を標 +準出力に出力します。 +.TP +\-\-remote\-send {keys} +Vim サーバーと通信し、{keys} に与えられたキーを Vim サーバーに送信します。 +.TP +\-\-remote\-silent +\-\-remote と同じですが、サーバーが存在しなくてもエラーメッセージを表示しま +せん。 +.TP +\-\-remote\-wait +\-\-remote と同じですが、ファイルが開かれるのを確認できるまで待機します。 +.TP +\-\-remote\-wait\-silent +\-\-remote\-wait と同じですが、サーバーが存在しなくてもエラーメッセージを表 +示しません。 +.TP +\-\-serverlist +Vim サーバーの一覧を表示します。 +.TP +\-\-servername {name} +サーバーの名前を {name} に設定します。\-\-remote 引数を指定しなかった場合 +は、起動中の Vim の名前として使われるので、後からその名前を使ってサーバー通 +信できます。 +.TP +\-\-socketid {id} +GTK GUI のみ: GtkPlug メカニズムを使って gvim を別のウィンドウの中で実行しま +す。 +.TP +\-\-version +バージョン情報を表示して終了します。 +.SH オンラインヘルプ +ヘルプを開くには、 +.B Vim +の中で ":help" と入力してください。 +":help 調べたい項目" と入力すれば、指定した項目のヘルプが表示されます。 +例: "ZZ" コマンドのヘルプを表示するには ":help ZZ" と入力します。 + や CTRL\-D を使って補完することもできます +(":help cmdline\-completion" 参照)。 +ヘルプには、項目から項目へジャンプできるようにタグが埋め込まれています +(ハイパーリンクのようなものです。":help" 参照)。 +すべてのヘルプファイルはこの方法で開くことができます。 +例: ":help syntax.txt"。 +.SH ファイル +.TP 15 +/usr/local/lib/vim/doc/*.txt +.B Vim +のヘルプファイル。 +ファイルの一覧は ":help doc\-file\-list" に記載されています。 +.TP +/usr/local/lib/vim/doc/tags +ヘルプを検索するための tags ファイル。 +.TP +/usr/local/lib/vim/syntax/syntax.vim +システムの構文定義初期化ファイル。 +.TP +/usr/local/lib/vim/syntax/*.vim +いろいろな言語用の構文定義ファイル。 +.TP +/usr/local/lib/vim/vimrc +システムの +.B Vim +初期化ファイル。 +.TP +~/.vimrc +ユーザーの +.B Vim +初期化ファイル。 +.TP +/usr/local/lib/vim/gvimrc +システムの gvim 初期化ファイル。 +.TP +~/.gvimrc +ユーザーの gvim 初期化ファイル。 +.TP +/usr/local/lib/vim/optwin.vim +":options" コマンドで使われるファイル。オプションを表示したり設定したりでき +ます。 +.TP +/usr/local/lib/vim/menu.vim +システムのメニュー初期化ファイル。gvim で使います。 +.TP +/usr/local/lib/vim/bugreport.vim +バグレポートを生成するスクリプト。":help bugs" 参照。 +.TP +/usr/local/lib/vim/filetype.vim +ファイル名からファイルタイプを判定するスクリプト。":help 'filetype'" 参照。 +.TP +/usr/local/lib/vim/scripts.vim +ファイルの内容からファイルタイプを判定するスクリプト。":help 'filetype'" 参照。 +.TP +/usr/local/lib/vim/print/*.ps +PostScript 印刷に使われるファイル。 +.PP +最新の情報は VIM のホームページを参照してください: +.br + +.SH 関連項目 +vimtutor(1) +.SH 著者 +.B Vim +のほとんどの機能は Bram Moolenaar が開発し、多くの人が協力しました。 +":help credits" を参照してください。 +.br +.B Vim +は Stevie を基にしています。Stevie は Tim Thompson、Tony Andrews、 +G.R. (Fred) Walter によって開発されました。 +ただし、オリジナルのコードはもうほとんど残っていません。 +.SH バグ +既知のバグは ":help todo" に記載されています。 +.PP +Vi の動作を忠実に再現した結果、多くの人がバグだと思うような機能もいくつかあ +ります。 +"この動作は Vi と違う" からバグだと思った場合は、vi_diff.txtを確認してみてく +ださい (ファイルを開くか、Vim から ":help vi_diff.txt" と入力)。 +オプションの 'compatible' と 'cpoptions' も確認してください。 diff --git a/runtime/doc/vimdiff-ja.UTF-8.1 b/runtime/doc/vimdiff-ja.UTF-8.1 new file mode 100644 index 0000000000..56fadfef6e --- /dev/null +++ b/runtime/doc/vimdiff-ja.UTF-8.1 @@ -0,0 +1,44 @@ +.TH VIMDIFF 1 "2001 March 30" +.SH 名前 +vimdiff \- 二つか三つか四つのファイルを Vim で開いて、その差分を表示する +.SH 書式 +.br +.B vimdiff +[options] file1 file2 [file3 [file4]] +.PP +.B gvimdiff +.SH 説明 +.B Vimdiff +は、二つ (か三つか四つ) のファイルを +.B Vim +で開きます。 +ファイルは個別のウィンドウで開かれ、差分が強調表示されます。 +同じファイルの別のバージョン間で、変更を確認したり、変更を移動したりするのが +簡単になります。 +.PP +Vim についての詳細は vim(1) を参照してください。 +.PP +.B gvimdiff +という名前で起動された場合は GUI で起動します。 +.PP +差分を強調表示するために、 +それぞれのウィンドウの 'diff' オプションがオンに設定されます。 +.br +テキストを見やすくするために、オプションの 'wrap' と 'scrollbind' もオンに設 +定されます。 +.br + 'foldmethod' オプションは "diff" に設定され、変更されていない行は折り畳まれ +ます。 +折り畳みの確認と開閉が簡単にできるように、'foldcolumn' は 2 に設定されます。 +.SH オプション +行を並べて表示するために、"\-O" 引数を使ったときのように、ウィンドウは垂直分 +割されます。 +ウィンドウを水平分割したい場合は "\-o" 引数を使ってください。 +.PP +その他の引数については vim(1) を参照してください。 +.SH 関連項目 +vim(1) +.SH 著者 +.B Vim +のほとんどの機能は Bram Moolenaar が開発し、多くの人が協力しました。 +":help credits" を参照してください。 diff --git a/runtime/doc/vimtutor-ja.UTF-8.1 b/runtime/doc/vimtutor-ja.UTF-8.1 new file mode 100644 index 0000000000..29b9b48f2c --- /dev/null +++ b/runtime/doc/vimtutor-ja.UTF-8.1 @@ -0,0 +1,45 @@ +.TH VIMTUTOR 1 "2001 April 2" +.SH 名前 +vimtutor \- Vim チュートリアル +.SH 書式 +.br +.B vimtutor [\-g] [language] +.SH 説明 +.B Vim +のチュートリアルを起動します。 +演習ファイルのコピーを使って実施するので、オリジナルの演習ファイルを壊してし +まう心配はありません。 +.PP +.B Vim +を初めて学ぶ人向けのチュートリアルです。 +.PP +引数に \-g を指定すると GUI 版の vim が利用可能であれば vim ではなく gvim を +使って vimtutor が開始します。gvim が見つからないときは Vim が使用されます。 +.PP +[language] 引数は "ja" や "es" などの二文字の言語名です。 +[language] 引数を省略した場合はロケールの言語が使われます。 +翻訳された演習ファイルがある場合は、そのファイルが使われます。 +ない場合は英語のファイルが使われます。 +.PP +.B Vim +は Vi 互換モードで起動されます。 +.SH ファイル +.TP 15 +/usr/local/lib/vim/tutor/tutor[.language] +.B Vimtutor +の演習ファイル。 +.TP 15 +/usr/local/lib/vim/tutor/tutor.vim +演習ファイルをコピーするための Vim スクリプト。 +.SH 著者 +.B Vimtutor +は、Colorado State University の Charles Smith のアイデアを基に、 +Colorado School of Mines の Michael C. Pierce と Robert K. Ware の両名 +によって Vi 向けに作成されたものを基にしています。 +E-mail: bware@mines.colorado.edu. +.br +.B Vim +に合わせて Bram Moolenaar が変更を加えました。 +翻訳者の名前は演習ファイルを参照してください。 +.SH 関連項目 +vim(1) diff --git a/runtime/doc/xxd-ja.UTF-8.1 b/runtime/doc/xxd-ja.UTF-8.1 new file mode 100644 index 0000000000..8a8d54b021 --- /dev/null +++ b/runtime/doc/xxd-ja.UTF-8.1 @@ -0,0 +1,366 @@ +.TH XXD 1 "August 1996" "Manual page for xxd" +.\" +.\" 21st May 1996 +.\" Man page author: +.\" Tony Nugent +.\" Changes by Bram Moolenaar +.SH 名前 +.I xxd +\- 16 進ダンプを作成したり、元に戻したり。 +.SH 書式 +.B xxd +\-h[elp] +.br +.B xxd +[options] [infile [outfile]] +.br +.B xxd +\-r[evert] [options] [infile [outfile]] +.SH 説明 +ファイルや標準入力から 16 進ダンプを作成します。 +16 進ダンプから元のバイナリに戻すこともできます。 +.BR uuencode (1) +や +.BR uudecode (1) +のように、バイナリデータを、メールに貼り付け可能な ASCII 形式に変換できた +り、標準出力に出力することもできます。 +さらに、バイナリファイルにパッチを当てるという使い方もできます。 +.SH オプション +.I infile +を指定しなかった場合は、標準入力が読み込まれます。 +.I infile +に +.RB \` \- ' +を指定した場合も、標準入力から読み込まれます。 +.I outfile +を指定しなかった (または +.RB \` \- ' +を指定した) 場合は、標準出力に出力されます。 +.PP +引数の解釈処理は適当なので注意してください。パラメータを取らない引数は +最初の一文字だけチェックされます。 +引数の文字とパラメータの間のスペースは省略可能です。 +パラメータは 10 進数、16 進数、8 進数で指定できます。 +.BR \-c8 +、 +.BR "\-c 8" +、 +.B \-c 010 +、 +.B \-cols 8 +はすべて同じ意味です。 +.PP +.TP +.IR \-a " | " \-autoskip +オートスキップ: 連続した nul 行を一つの '*' で置き換える。 +.TP +.IR \-b " | " \-bits +ビット (2進数) ダンプ。 +1 オクテットが "1" と "0" の 8 文字で出力されます。 +各行の行頭には 16 進数の行番号が表示されます。 +行末には ascii (または ebcdic) で表した場合の文字が表示されます。 +このモードでは \-r、\-p、\-i は機能しません。 +.TP +.IR "\-c cols " | " \-cols cols" +一行 +.RI < cols > +オクテットで出力する。標準設定は 16 (\-i: 12, \-ps: 30, \-b: 6)。最大 256。 +.TP +.IR \-E " | " \-EBCDIC +右端に出力される文字のエンコーディングを ASCII から EBCDIC に変更する。 +16 進ダンプの出力形式は変更されません。 +\-r、\-p、\-i が同時に指定された場合は何の効果もありません。 +.TP +.IR "\-g bytes " | " \-groupsize bytes" +出力を +.RI < bytes > +バイト (2 文字の 16 進数、または 8 文字の 2 進数) ごとにスペースで区切りま +す。 +区切らずに出力するには +.I \-g 0 +を指定してください。 +.RI < Bytes > +の標準設定は \fI2\fP です。2 進ダンプの場合は \fI1\fP です。 +ポストスクリプト形式やインクルード形式で出力するときは、このオプションは使わ +れません。 +.TP +.IR \-h " | " \-help +コマンドの説明を出力して終了する。変換は実行されません。 +.TP +.IR \-i " | " \-include +C インクルードファイル形式で出力します。入力ファイルの名前が付けられた静的配 +列の定義が出力されます。標準入力の場合は定義の中身だけ出力されます。 +.TP +.IR "\-l len " | " \-len len" +.RI < len > +オクテットだけ出力する。 +.TP +.IR \-p " | " \-ps " | " \-postscript " | " \-plain +ポストスクリプト形式の 16 進ダンプを出力する。別名 プレーン 16 進ダンプ。 +.TP +.IR \-r " | " \-revert +元に戻す: 16 進ダンプからバイナリ形式に変換 (またはパッチ) します。 +ファイルへ出力する場合、出力先のファイルは切り詰めされません。 +行番号や特定の書式がないプレーン 16 進ダンプを読み込む場合は、 +.I \-r \-p +を指定してください。空白と改行は無視されます。 +.TP +.I \-seek offset +.IR \-r +の後で使われた場合: 16 進ダンプを出力するファイルの位置に +.RI < offset > +を加える。 +.TP +.I \-s [+][\-]seek +infile の +.RI < seek > +バイト目 (絶対位置、または相対位置) から開始する。 +\fI+ \fRは、現在の標準入力の位置から相対的な位置を示します +(標準入力から読み込むときのみ意味があります)。\fI\- \fRは、入力の終わりから +の文字数を示します (\fI+\fR と同時に指定した場合は、現在の標準入力の位置から +手前の位置を示します)。 +\-s 引数を指定しなかった場合は、現在のファイル位置から開始されます。 +.TP +.I \-u +16 進数の表記に大文字を使います。指定がない場合は小文字で出力されます。 +.TP +.IR \-v " | " \-version +バージョンを表示します。 +.SH 警告 +.PP +.I xxd \-r +では行番号の評価に関しての暗黙のルールがいくつかあります。 +出力ファイルがシーク可能なら、各行の行番号が順番通りに並んでなくても構いませ +ん。位置が飛んでいても重なっていても大丈夫です。その場合、次の位置に移動する +ために lseek(2) が使われます。 +出力ファイルがシーク不可なら、「隙間」だけが処理可能です。隙間は null バイト +で埋められます。 +.PP +.I xxd \-r +は不正な入力をエラーにしません。ゴミは静かに読み飛ばされます。 +.PP +16 進ダンプを編集するときは注意が必要です。 +.I xxd \-r +は必要な桁 (\-c 引数参照) だけ 16 進データを読み込んで、行の残りを無視しま +す。つまり、ascii (または ebcdic) を示している列への変更は無視されます。 +xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダンプを元に戻す場 +合は、列の数は影響しません。 +2 桁の 16 進数と認識できるものはすべて変換されます。 +.PP +\fI% xxd \-i file\fR +.br +と +.br +\fI% xxd \-i < file\fR +.br +の結果は違います。注意してください。 +.PP +.I xxd \-s +seek +と +.IR "xxd \-s seek" , +の違いは、lseek(2) を使って入力を "巻き戻す" かどうかです。'+' が意味を持つ +のは、入力が標準入力で、xxd が起動されたときに標準入力のファイル位置がファイ +ルの先頭ではなかった場合です。 +以下の例が分かりやすいかもしれません (もっと混乱するかも!)... +.PP +`cat' が既に標準入力を終わりまで読んでいるので、読む前に標準入力を巻き戻す必 +要がある。 +.br +\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR +.PP +ファイル位置 0x480 (=1024+128) 前方から 16 進ダンプする。 +`+' は 「現在地からの相対位置」を意味するので、dd が 1k 処理した後から、さら +に `128' 進めます。 +.br +\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR +.PP +ファイル位置 0x100 ( = 1024\-768) から 16 進ダンプする。 +.br +\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR +.PP +このような使い方はあまりしませんし、`+' を使うこともほとんどないでしょう。 +\-s を使うときはいつでも、strace(1) や truss(1) を使って、xxd の働きをチェッ +クすることをお勧めします。 +.SH 例 +.PP +.br +.BR ファイル +の最初の三行 (16 進数で 0x30 バイト) 以降を出力する。 +.br +\fI% xxd \-s 0x30 file\fR +.PP +.br +.BR ファイル +の最後から三行 (16 進数で 0x30 バイト) を出力する。 +.br +\fI% xxd \-s \-0x30 file\fR +.PP +.br +120 バイトを、平文 16 進ダンプ形式で一行に 20 オクテットずつ出力する。 +.br +\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR +.br +2e54482058584420312022417567757374203139 +.br +39362220224d616e75616c207061676520666f72 +.br +20787864220a2e5c220a2e5c222032317374204d +.br +617920313939360a2e5c22204d616e2070616765 +.br +20617574686f723a0a2e5c2220202020546f6e79 +.br +204e7567656e74203c746f6e79407363746e7567 +.br + +.br +この man ページの先頭から 120 バイトを一行に 12 オクテットずつ 16 進ダンプす +る。 +.br +\fI% xxd \-l 120 \-c 12 xxd.1\fR +.br +0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A +.br +000000c: 7567 7573 7420 3139 3936 2220 ugust 1996" +.br +0000018: 224d 616e 7561 6c20 7061 6765 "Manual page +.br +0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\\ +.br +0000030: 220a 2e5c 2220 3231 7374 204d "..\\" 21st M +.br +000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\\" +.br +0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut +.br +0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\\" +.br +0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent +.br +000006c: 3c74 6f6e 7940 7363 746e 7567 output_file\fR +.br + +.br +xxd.1 の日付を修正する。 +.br +\fI% echo "0000037: 3574 68" | xxd \-r \- xxd.1\fR +.br +\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR +.br +0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996 +.PP +.br +中身がすべて 0x00 の 65537 バイトのファイルを作成する。 +ただし、最後のバイトだけは 'A' (hex 0x41)。 +.br +\fI% echo "010000: 41" | xxd \-r > file\fR +.PP +.br +作成したファイルをオートスキップを使って 16 進ダンプする。 +.br +\fI% xxd \-a \-c 12 file\fR +.br +0000000: 0000 0000 0000 0000 0000 0000 ............ +.br +* +.br +000fffc: 0000 0000 40 ....A +.PP +一文字の 'A' からなる 1 バイトのファイルを作成する。 + '\-r \-s' の後に指定した数値がファイル中の行番号に加算され、結果、余計なバ +イトが飛ばされる。 +.br +\fI% echo "010000: 41" | xxd \-r \-s \-0x10000 > file\fR +.PP +.B vim(1) +の中から xxd をフィルタとして実行し、 +マークされた `a' から `z' までの領域を 16 進ダンプする。 +.br +\fI:'a,'z!xxd\fR +.PP +.B vim(1) +の中から xxd をフィルタとして実行し、 +マークされた `a' から `z' までの領域をバイナリに戻す。 +.br +\fI:'a,'z!xxd \-r\fR +.PP +.B vim(1) +の中から xxd をフィルタとして実行し、 +16 進ダンプされた行を元に戻す。戻したい行にカーソルを移動して: +.br +\fI!!xxd \-r\fR +.PP +シリアル行から一文字読み込む +.br +\fI% xxd \-c1 < /dev/term/b &\fR +.br +\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR +.br +\fI% echo \-n foo > /dev/term/b\fR +.PP +.SH 返り値 +以下のエラー値が返ります: +.TP +0 +エラーなし。 +.TP +\-1 +操作がサポートされていない ( +.I xxd \-r \-i +はまだ不可です)。 +.TP +1 +引数の解釈に関するエラー。 +.TP +2 +入力ファイルに関する問題。 +.TP +3 +出力ファイルに関する問題。 +.TP +4,5 +指定された位置へシークできなかった。 +.SH 関連項目 +uuencode(1), uudecode(1), patch(1) +.br +.SH 警告 +この奇妙なツールは作者が使いやすいように作られています。 +自己責任で使ってください。ファイルをコピーし、それを調べ、ウィザードたれ。 +.br +.SH バージョン +このマニュアルは xxd バージョン 1.7 について説明しています。 +.SH 著者 +.br +(c) 1990-1997 by Juergen Weigert +.br + +.LP +私の功績として自由に配布してください。 +.br +儲かったら教えてください。 +.br +損しても知りません。 +.PP +マニュアルは Tony Nugent +.br + +.br +によって書かれ、 +Bram Moolenaar が少し変更を加え、 +Juergen Weigert が編集しました。 +.PP diff --git a/src/Makefile b/src/Makefile index d37979cbb4..8bdb699229 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1417,6 +1417,7 @@ DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8$(MAN1DIR) DEST_MAN_IT = $(DEST_MAN_TOP)/it$(MAN1DIR) DEST_MAN_IT_I = $(DEST_MAN_TOP)/it.ISO8859-1$(MAN1DIR) DEST_MAN_IT_U = $(DEST_MAN_TOP)/it.UTF-8$(MAN1DIR) +DEST_MAN_JA_U = $(DEST_MAN_TOP)/ja.UTF-8$(MAN1DIR) DEST_MAN_PL = $(DEST_MAN_TOP)/pl$(MAN1DIR) DEST_MAN_PL_I = $(DEST_MAN_TOP)/pl.ISO8859-2$(MAN1DIR) DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR) @@ -2101,6 +2102,7 @@ install-tool-languages: -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -$(SHELL) ./installman.sh xxd $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh xxd $(DEST_MAN_JA_U) "-ja.UTF-8" $(INSTALLMANARGS) -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -$(SHELL) ./installman.sh xxd $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) @@ -2115,6 +2117,7 @@ install-languages: languages $(DEST_LANG) $(DEST_KMAP) -$(SHELL) ./installman.sh install $(DEST_MAN_IT) "-it" $(INSTALLMANARGS) -$(SHELL) ./installman.sh install $(DEST_MAN_IT_I) "-it" $(INSTALLMANARGS) -$(SHELL) ./installman.sh install $(DEST_MAN_IT_U) "-it.UTF-8" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh install $(DEST_MAN_JA_U) "-ja.UTF-8" $(INSTALLMANARGS) -$(SHELL) ./installman.sh install $(DEST_MAN_PL) "-pl" $(INSTALLMANARGS) -$(SHELL) ./installman.sh install $(DEST_MAN_PL_I) "-pl" $(INSTALLMANARGS) -$(SHELL) ./installman.sh install $(DEST_MAN_PL_U) "-pl.UTF-8" $(INSTALLMANARGS) @@ -2132,6 +2135,8 @@ install-languages: languages $(DEST_LANG) $(DEST_KMAP) $(DEST_MAN_IT_I) $(INSTALLMLARGS) -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ $(DEST_MAN_IT_U) $(INSTALLMLARGS) + -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ + $(DEST_MAN_JA_U) $(INSTALLMLARGS) -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ $(DEST_MAN_PL) $(INSTALLMLARGS) -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \ @@ -2278,6 +2283,7 @@ uninstall_runtime: -$(SHELL) ./installman.sh uninstall $(DEST_MAN_IT) "" $(INSTALLMANARGS) -$(SHELL) ./installman.sh uninstall $(DEST_MAN_IT_I) "" $(INSTALLMANARGS) -$(SHELL) ./installman.sh uninstall $(DEST_MAN_IT_U) "" $(INSTALLMANARGS) + -$(SHELL) ./installman.sh uninstall $(DEST_MAN_JA_U) "" $(INSTALLMANARGS) -$(SHELL) ./installman.sh uninstall $(DEST_MAN_PL) "" $(INSTALLMANARGS) -$(SHELL) ./installman.sh uninstall $(DEST_MAN_PL_I) "" $(INSTALLMANARGS) -$(SHELL) ./installman.sh uninstall $(DEST_MAN_PL_U) "" $(INSTALLMANARGS) @@ -2297,6 +2303,8 @@ uninstall_runtime: $(DEST_MAN_IT_I) $(INSTALLMLARGS) -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \ $(DEST_MAN_IT_U) $(INSTALLMLARGS) + -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \ + $(DEST_MAN_JA_U) $(INSTALLMLARGS) -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \ $(DEST_MAN_PL) $(INSTALLMLARGS) -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \ @@ -2310,6 +2318,7 @@ uninstall_runtime: -rm -f $(DEST_MAN)/xxd.1 -rm -f $(DEST_MAN_FR)/xxd.1 $(DEST_MAN_FR_I)/xxd.1 $(DEST_MAN_FR_U)/xxd.1 -rm -f $(DEST_MAN_IT)/xxd.1 $(DEST_MAN_IT_I)/xxd.1 $(DEST_MAN_IT_U)/xxd.1 + -rm -f $(DEST_MAN_JA_U)/xxd.1 -rm -f $(DEST_MAN_PL)/xxd.1 $(DEST_MAN_PL_I)/xxd.1 $(DEST_MAN_PL_U)/xxd.1 -rm -f $(DEST_MAN_RU)/xxd.1 $(DEST_MAN_RU_U)/xxd.1 -rm -f $(DEST_HELP)/*.txt $(DEST_HELP)/tags $(DEST_HELP)/*.pl @@ -2360,9 +2369,11 @@ SHADOWDIR = shadow shadow: runtime pixmaps mkdir $(SHADOWDIR) - cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../po ../vimtutor ../gvimtutor ../mkinstalldirs . + cd $(SHADOWDIR); ln -s ../*.[ch] ../*.in ../*.sh ../*.xs ../*.xbm ../toolcheck ../proto ../vimtutor ../gvimtutor ../mkinstalldirs . mkdir $(SHADOWDIR)/auto cd $(SHADOWDIR)/auto; ln -s ../../auto/configure . + mkdir $(SHADOWDIR)/po + cd $(SHADOWDIR)/po; ln -s ../../po/*.po ../../po/*.mak ../../po/*.vim ../../po/Makefile . cd $(SHADOWDIR); rm -f auto/link.sed cp Makefile configure $(SHADOWDIR) rm -f $(SHADOWDIR)/auto/config.mk $(SHADOWDIR)/config.mk.dist @@ -2380,6 +2391,7 @@ shadow: runtime pixmaps ../../testdir/vimrc.unix \ ../../testdir/*.in \ ../../testdir/*.vim \ + ../../testdir/python* \ ../../testdir/test83-tags? \ ../../testdir/*.ok . diff --git a/src/auto/configure b/src/auto/configure index 513a3e8ae1..a260fa36ee 100755 --- a/src/auto/configure +++ b/src/auto/configure @@ -5885,10 +5885,7 @@ if test "${vi_cv_path_python3_conf+set}" = set; then else vi_cv_path_python3_conf= - config_dir="config" - if test "${vi_cv_var_python3_abiflags}" != ""; then - config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}" - fi + config_dir="config-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}" d=`${vi_cv_path_python3} -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBPL'))"` if test -d "$d" && test -f "$d/config.c"; then vi_cv_path_python3_conf="$d" @@ -6314,6 +6311,63 @@ _ACEOF PYTHON_OBJ="objects/if_python.o" PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\"" PYTHON_LIBS= +elif test "$python_ok" = yes; then + { echo "$as_me:$LINENO: checking if -fPIE can be added for Python" >&5 +echo $ECHO_N "checking if -fPIE can be added for Python... $ECHO_C" >&6; } + cflags_save=$CFLAGS + libs_save=$LIBS + CFLAGS="$CFLAGS $PYTHON_CFLAGS -fPIE" + LIBS="$LIBS $PYTHON_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; }; fpie_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; }; fpie_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$cflags_save + LIBS=$libs_save + if test $fpie_ok = yes; then + PYTHON_CFLAGS="$PYTHON_CFLAGS -fPIE" + fi elif test "$python3_ok" = yes && test "$enable_python3interp" = "dynamic"; then cat >>confdefs.h <<\_ACEOF #define DYNAMIC_PYTHON3 1 @@ -6323,6 +6377,63 @@ _ACEOF PYTHON3_OBJ="objects/if_python3.o" PYTHON3_CFLAGS="$PYTHON3_CFLAGS -DDYNAMIC_PYTHON3_DLL=\\\"${python3_INSTSONAME}\\\"" PYTHON3_LIBS= +elif test "$python3_ok" = yes; then + { echo "$as_me:$LINENO: checking if -fPIE can be added for Python3" >&5 +echo $ECHO_N "checking if -fPIE can be added for Python3... $ECHO_C" >&6; } + cflags_save=$CFLAGS + libs_save=$LIBS + CFLAGS="$CFLAGS $PYTHON3_CFLAGS -fPIE" + LIBS="$LIBS $PYTHON3_LIBS" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; }; fpie_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; }; fpie_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS=$cflags_save + LIBS=$libs_save + if test $fpie_ok = yes; then + PYTHON3_CFLAGS="$PYTHON3_CFLAGS -fPIE" + fi fi { echo "$as_me:$LINENO: checking --enable-tclinterp argument" >&5 diff --git a/src/configure.in b/src/configure.in index 3a79ae5866..e450ba5f87 100644 --- a/src/configure.in +++ b/src/configure.in @@ -1144,10 +1144,7 @@ if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf, [ vi_cv_path_python3_conf= - config_dir="config" - if test "${vi_cv_var_python3_abiflags}" != ""; then - config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}" - fi + config_dir="config-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}" d=`${vi_cv_path_python3} -c "import distutils.sysconfig; print(distutils.sysconfig.get_config_var('LIBPL'))"` if test -d "$d" && test -f "$d/config.c"; then vi_cv_path_python3_conf="$d" @@ -1387,12 +1384,44 @@ elif test "$python_ok" = yes && test "$enable_pythoninterp" = "dynamic"; then PYTHON_OBJ="objects/if_python.o" PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\"" PYTHON_LIBS= +elif test "$python_ok" = yes; then + dnl Check that adding -fPIE works. It may be needed when using a static + dnl Python library. + AC_MSG_CHECKING([if -fPIE can be added for Python]) + cflags_save=$CFLAGS + libs_save=$LIBS + CFLAGS="$CFLAGS $PYTHON_CFLAGS -fPIE" + LIBS="$LIBS $PYTHON_LIBS" + AC_TRY_LINK(,[ ], + AC_MSG_RESULT(yes); fpie_ok=yes, + AC_MSG_RESULT(no); fpie_ok=no) + CFLAGS=$cflags_save + LIBS=$libs_save + if test $fpie_ok = yes; then + PYTHON_CFLAGS="$PYTHON_CFLAGS -fPIE" + fi elif test "$python3_ok" = yes && test "$enable_python3interp" = "dynamic"; then AC_DEFINE(DYNAMIC_PYTHON3) PYTHON3_SRC="if_python3.c" PYTHON3_OBJ="objects/if_python3.o" PYTHON3_CFLAGS="$PYTHON3_CFLAGS -DDYNAMIC_PYTHON3_DLL=\\\"${python3_INSTSONAME}\\\"" PYTHON3_LIBS= +elif test "$python3_ok" = yes; then + dnl Check that adding -fPIE works. It may be needed when using a static + dnl Python library. + AC_MSG_CHECKING([if -fPIE can be added for Python3]) + cflags_save=$CFLAGS + libs_save=$LIBS + CFLAGS="$CFLAGS $PYTHON3_CFLAGS -fPIE" + LIBS="$LIBS $PYTHON3_LIBS" + AC_TRY_LINK(,[ ], + AC_MSG_RESULT(yes); fpie_ok=yes, + AC_MSG_RESULT(no); fpie_ok=no) + CFLAGS=$cflags_save + LIBS=$libs_save + if test $fpie_ok = yes; then + PYTHON3_CFLAGS="$PYTHON3_CFLAGS -fPIE" + fi fi AC_MSG_CHECKING(--enable-tclinterp argument) diff --git a/src/diff.c b/src/diff.c index 92648a3615..80f4473144 100644 --- a/src/diff.c +++ b/src/diff.c @@ -1235,10 +1235,19 @@ ex_diffoff(eap) curbuf = curwin->w_buffer; if (wp->w_p_fdc == diff_foldcolumn) wp->w_p_fdc = wp->w_p_diff_saved ? wp->w_p_fdc_save : 0; - if (wp->w_p_fen) - wp->w_p_fen = wp->w_p_diff_saved ? wp->w_p_fen_save : FALSE; if (wp->w_p_fdl == 0 && wp->w_p_diff_saved) wp->w_p_fdl = wp->w_p_fdl_save; + + if (wp->w_p_fen) + { + /* Only restore 'foldenable' when 'foldmethod' is not + * "manual", otherwise we continue to show the diff folds. */ + if (foldmethodIsManual(wp) || !wp->w_p_diff_saved) + wp->w_p_fen = FALSE; + else + wp->w_p_fen = wp->w_p_fen_save; + } + foldUpdateAll(wp); /* make sure topline is not halfway a fold */ changed_window_setting_win(wp); diff --git a/src/ex_docmd.c b/src/ex_docmd.c index db906531eb..12f92d8a2b 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -9000,6 +9000,9 @@ ex_redraw(eap) msg_didout = FALSE; msg_col = 0; + /* No need to wait after an intentional redraw. */ + need_wait_return = FALSE; + out_flush(); } diff --git a/src/gui_x11.c b/src/gui_x11.c index f09d1a0c36..ed71b26ce8 100644 --- a/src/gui_x11.c +++ b/src/gui_x11.c @@ -1503,14 +1503,13 @@ gui_mch_init() if (XGetIconSizes(XtDisplay(vimShell), root_window, &size, &number_sizes) != 0) { - if (number_sizes > 0) { - if (size->max_height >= 48 && size->max_height >= 48) + if (size->max_height >= 48 && size->max_width >= 48) magick = vim48x48; - else if (size->max_height >= 32 && size->max_height >= 32) + else if (size->max_height >= 32 && size->max_width >= 32) magick = vim32x32; - else if (size->max_height >= 16 && size->max_height >= 16) + else if (size->max_height >= 16 && size->max_width >= 16) magick = vim16x16; } } diff --git a/src/normal.c b/src/normal.c index 6da68f50f7..04e0e64fbe 100644 --- a/src/normal.c +++ b/src/normal.c @@ -4550,7 +4550,7 @@ nv_screengo(oap, dir, dist) int width2; /* test width for wrapped screen line */ oap->motion_type = MCHAR; - oap->inclusive = FALSE; + oap->inclusive = (curwin->w_curswant == MAXCOL); col_off1 = curwin_col_off(); col_off2 = col_off1 - curwin_col_off2(); diff --git a/src/ops.c b/src/ops.c index ab3d636cdc..0eb5903418 100644 --- a/src/ops.c +++ b/src/ops.c @@ -267,6 +267,10 @@ op_shift(oap, curs_top, amount) } changed_lines(oap->start.lnum, 0, oap->end.lnum + 1, 0L); +#ifdef FEAT_FOLDING + /* The cursor line is not in a closed fold */ + foldOpenCursor(); +#endif #ifdef FEAT_VISUAL if (oap->block_mode) diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c index d8df13cb07..02fe49ea16 100644 --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -1516,7 +1516,6 @@ collection: EMIT('-'); EMIT(NFA_CONCAT); } - mb_ptr_adv(regparse); /* skip the trailing ] */ regparse = endp; @@ -3739,7 +3738,7 @@ match_follows(startstate, depth) if (depth > 10) return FALSE; - for (;;) + while (state != NULL) { switch (state->c) { @@ -3765,7 +3764,7 @@ match_follows(startstate, depth) case NFA_COMPOSING: /* skip ahead to next state */ state = state->out1->out; - break; + continue; case NFA_ANY: case NFA_IDENT: @@ -4582,7 +4581,7 @@ recursive_regmatch(state, pim, prog, submatch, m, listids) /* Go back the specified number of bytes, or as far as the * start of the previous line, to try matching "\@<=" or - * not matching "\@val <= 0) { diff --git a/src/screen.c b/src/screen.c index cbaf11a4b0..947d12f74f 100644 --- a/src/screen.c +++ b/src/screen.c @@ -2997,6 +2997,14 @@ win_line(wp, lnum, startrow, endrow, nochange) int vcol_off = 0; /* offset for concealed characters */ int did_wcol = FALSE; # define VCOL_HLC (vcol - vcol_off) +# define FIX_FOR_BOGUSCOLS \ + { \ + n_extra += vcol_off; \ + vcol -= vcol_off; \ + vcol_off = 0; \ + col -= boguscols; \ + boguscols = 0; \ + } #else # define VCOL_HLC (vcol) #endif @@ -4404,7 +4412,14 @@ win_line(wp, lnum, startrow, endrow, nochange) 1), (colnr_T)vcol, NULL) - 1; c_extra = ' '; if (vim_iswhite(c)) + { +#ifdef FEAT_CONCEAL + if (c == TAB) + /* See "Tab alignment" below. */ + FIX_FOR_BOGUSCOLS; +#endif c = ' '; + } } #endif @@ -4453,11 +4468,7 @@ win_line(wp, lnum, startrow, endrow, nochange) * and boguscols accumulated so far in the line. Note that * the tab can be longer than 'tabstop' when there * are concealed characters. */ - n_extra += vcol_off; - vcol -= vcol_off; - vcol_off = 0; - col -= boguscols; - boguscols = 0; + FIX_FOR_BOGUSCOLS; #endif #ifdef FEAT_MBYTE mb_utf8 = FALSE; /* don't draw as UTF-8 */ diff --git a/src/testdir/test62.in b/src/testdir/test62.in index 933bfe5059..03415d1322 100644 --- a/src/testdir/test62.in +++ b/src/testdir/test62.in @@ -36,7 +36,7 @@ STARTTEST :call settabvar(2, 'val_list', ['red', 'blue', 'green']) :" :let test_status = 'gettabvar: fail' -:if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) +:if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'] : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) @@ -146,7 +146,7 @@ i=a  endif let t:a='c' call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")'))) - C call map(range(1, tabpagenr('$')), 'settabvar(v:val, "a", v:val*2)') + C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")'))) let w:a='a' C vsplit @@ -161,7 +161,7 @@ i=a  let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter'] endif call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")'))) - C call map(copy(winr), 'settabwinvar('.tabn.', v:val, "a", v:val*2)') + C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")'))) if hasau augroup TabDestructive diff --git a/src/testdir/test62.ok b/src/testdir/test62.ok index df1035eccb..e35b2b1c67 100644 --- a/src/testdir/test62.ok +++ b/src/testdir/test62.ok @@ -31,8 +31,8 @@ TabEnter BufLeave BufEnter a b c -=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, === -a b c +=== call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)') === +2 4 6 === vsplit === WinLeave WinEnter @@ -44,8 +44,8 @@ WinEnter TabEnter BufEnter a a -=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, === -a a +=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') === +2 4 === tabnext 3 === BufLeave WinLeave diff --git a/src/testdir/test86.in b/src/testdir/test86.in index 8b4a4c1538..ba3557be30 100644 --- a/src/testdir/test86.in +++ b/src/testdir/test86.in @@ -857,8 +857,19 @@ fnamemodify = vim.Function('fnamemodify') cb.append(fnamemodify('.', ':p:h:t')) cb.append(vim.eval('@%')) os.chdir('..') -cb.append(fnamemodify('.', ':p:h:t')) -cb.append(vim.eval('@%').replace(os.path.sep, '/')) +path = fnamemodify('.', ':p:h:t') +if path != 'src': + # Running tests from a shadow directory, so move up another level + # This will result in @% looking like shadow/testdir/test86.in, hence the + # extra fnamemodify + os.chdir('..') + cb.append(fnamemodify('.', ':p:h:t')) + cb.append(fnamemodify(vim.eval('@%'), ':s?^%s.??' % path).replace(os.path.sep, '/')) + os.chdir(path) + del path +else: + cb.append(fnamemodify('.', ':p:h:t')) + cb.append(vim.eval('@%').replace(os.path.sep, '/')) os.chdir('testdir') cb.append(fnamemodify('.', ':p:h:t')) cb.append(vim.eval('@%')) diff --git a/src/testdir/test88.in b/src/testdir/test88.in index 1536b3bba7..c2e6a752fa 100644 --- a/src/testdir/test88.in +++ b/src/testdir/test88.in @@ -68,6 +68,9 @@ GGk GGk :normal $ GGk +:set lbr +:normal $ +GGk :" Display result. :call append('$', 'end:') :call append('$', positions) diff --git a/src/testdir/test88.ok b/src/testdir/test88.ok index e726258a55..e29698b7bd 100644 --- a/src/testdir/test88.ok +++ b/src/testdir/test88.ok @@ -21,3 +21,4 @@ end: 9:17 9:25 9:26 +9:26 diff --git a/src/testdir/test89.in b/src/testdir/test89.in index 2ad3f25587..1c3079f62f 100644 --- a/src/testdir/test89.in +++ b/src/testdir/test89.in @@ -51,7 +51,10 @@ STARTTEST :$put h :" :let cwd=getcwd() -:cd ../.. +:cd .. +:" Tests may be run from a shadow directory, so an extra cd needs to be done to +:" get above src/ +:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif :$put ='' :$put ='Testing findfile' :$put ='' diff --git a/src/testdir/test98a.in b/src/testdir/test98a.in index 4999c28c7c..df07a6c3fa 100644 --- a/src/testdir/test98a.in +++ b/src/testdir/test98a.in @@ -24,4 +24,5 @@ setl scb wincmd p -call feedkeys(":setl scb\n\\", 't') +setl scb +wincmd w diff --git a/src/ui.c b/src/ui.c index da1f5cad67..037993b84a 100644 --- a/src/ui.c +++ b/src/ui.c @@ -1487,8 +1487,9 @@ clip_gen_owner_exists(cbd) else # endif return clip_x11_owner_exists(cbd); -#endif +#else return TRUE; +#endif } #endif /* FEAT_CLIPBOARD */ diff --git a/src/version.c b/src/version.c index aaf819ddd6..4c69b666e4 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,40 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 26, +/**/ + 25, +/**/ + 24, +/**/ + 23, +/**/ + 22, +/**/ + 21, +/**/ + 20, +/**/ + 19, +/**/ + 18, +/**/ + 17, +/**/ + 16, +/**/ + 15, +/**/ + 14, +/**/ + 13, +/**/ + 12, +/**/ + 11, +/**/ + 10, /**/ 9, /**/