vim-jp / vimdoc-ja / various

various - Vim日本語ドキュメント

メインヘルプファイルに戻る English | 日本語 | 編集
various.txt   For Vim バージョン 9.1.  Last change: 2023 Sep 27


                VIM リファレンスマニュアル    by Bram Moolenaar

様々なコマンド                                          various

1. 様々なコマンド                       various-cmds
2. less、more の代わりに Vim を使う     less

==============================================================================
1. 様々なコマンド                                       various-cmds

                                                        CTRL-L
CTRL-L                  画面を消去して再描画します。すでに入力されているキーを
                        すべて処理してから再描画します。

                                                        :redr :redraw
:redr[aw][!]            画面をすぐに再描画します。! を付けたときは、画面を消去
                        してから再描画します。
                        スクリプトや関数を実行している途中で画面を更新するのに
                        便利です。マップの実行中や、'lazyredraw' がオンに設定
                        されているときでも更新できます。

                                                :redraws :redrawstatus
:redraws[tatus][!]      カレントウィンドウのステータスラインを再描画します。
                        ! を付けたときは、すべてのステータスラインを再描画しま
                        す。
                        'statusline' に自動更新されない項目が含まれている場合
                        に、ステータスラインを更新するのに便利です。
                        コマンドラインの編集が開始すると再描画はその後にまで延
                        期されます。

                                                :redrawt :redrawtabline
:redrawt[abline]        タブページ行を再描画します。'tabline' に自動更新されな
                        い項目が含まれている場合に、タブページ行を更新するのに
                        便利です。

                                                        N<Del>
<Del>                   ノーマルモードで数値 (count) を入力しているときは、
                        数字の最後の桁を削除します。
                        Note: 同じことをするのに <BS> を使いたい場合は、次の
                        マップを .vimrc に追加してください: >
                                :map CTRL-V <BS>   CTRL-V <Del>
<                       <Del> が望みどおりに機能しない場合には:fixdelを参照。
{訳注: "CTRL-V <BS>"はCTRL-Vを押してから<BS>を押す。}

:as[cii]                                                ga :as :ascii
ga                      カーソル位置の文字の文字コードを、10/16/8 進数で表示し
                        ます。
                        覚え方: Get Ascii value (ASCIIコードを取得)

                        カーソルが 'R' の上にあるときは次のように表示されます:
                                <R>  82,  Hex 52,  Octal 122 ~
                        ASCII 以外の文字がオプション 'isprint' に設定されてい
                        て、表示可能になっている場合には、特殊な表示形式もいっ
                        しょに表示されます。

                        文字コードが 127 より大きいときには <M-x> という形式も
                        表示されます。例:
                                <~A>  <M-^A>  129,  Hex 81,  Octal 201 ~
                                <p>  <|~>  <M-~>  254,  Hex fe,  Octal 376 ~
                        (<p> には実際の特殊文字が表示されます。)

                        ファイル中の <Nul> 文字は内部的には <NL> として保存さ
                        れていますが、次のように表示されます:
                                <^@>  0,  Hex 00,  Octal 000 ~

                        合成文字も表示されます。'maxcombine' の設定は影響しま
                        せん。

                        文字がダイグラフとして入力されている場合、その文字を生
                        成するために使用できる 2 文字も出力します:
                            <ö> 246, Hex 00f6, Oct 366, Digr o: ~
                        これは、ö を入力するために CTRL-K o : とタイプすればよ
                        いことを意味しています。

                                                        g8
g8                      カーソル位置の文字のバイト列を 16 進数で表示します。エ
                        ンコーディングが UTF-8 の場合のみ正しく機能します。
                        合成文字も表示されます。'maxcombine' の設定は影響しま
                        せん。
                        2 文字の合成文字が結合されている文字の表示例:
                                e0 b8 81 + e0 b8 b9 + e0 b9 89 ~

                                                        8g8
8g8                     カーソル以降の不正な UTF-8 バイト列を検索します。
                        次の二つの状況で機能します。
                        1. 'encoding' が 8-bit エンコーディングの場合。
                        2. 'encoding' が "utf-8" で、'fileencoding' が 8-bit
                           エンコーディングの場合。
                        UTF-8 のファイルを開いたはずが、不正なバイト列が含まれ
                        ていて、別の 8-bit エンコーディングとして開かれてし
                        まった場合などに使ってください。
                        検索がファイル末尾に達しても、ファイル先頭に戻って検索
                        を継続しません。
                        Note: カーソルがすでに不正なバイト列の上にある場合は、
                        カーソルは移動しません。

                                                :p :pr :print E749
:[range]p[rint] [flags]
                        範囲 [range] の行を表示します (省略時は現在行を表示)。
                        Note: テキストファイルを印刷する方法については
                        :hardcopy を参照してください。GUI を使用している場合
                        は、メニューの File.Print から印刷できます。
                        [flags] については ex-flags を参照してください。
                        パターンにマッチした行だけを表示するのに、:filter コ
                        マンドを使うことができます。

:[range]p[rint] {count} [flags]
                        [range] の開始行から {count} 行を表示します([range]
                        省略した場合は現在行から開始 cmdline-ranges)。
                        [flags] については ex-flags を参照してください。

                                                        :P :Print
:[range]P[rint] [count] [flags]
                        :print と同じです。シフトキーを長く押し続けてしまう人
                        のために追加されました。
                        このコマンドは Vim9 script ではサポートされません。
                        Note: ユーザーコマンドでこのコマンドを上書きできます。
                        [flags] については ex-flags を参照してください。

                                                        :l :list
:[range]l[ist] [count] [flags]
                        :print と同じですが、表示できない文字は '^'を付けて表
                        示し、行末に $ を置きます。表示は 'listchars' オプショ
                        ンの設定で変更できます。
                        [flags] については ex-flags を参照してください。

                                                        :nu :number
:[range]nu[mber] [count] [flags]
                        :print と同じですが、先頭に行番号を付加します。
                        (オプション 'highlight' と 'numberwidth' も参照)
                        [flags] については ex-flags を参照してください。

                                                        :#
:[range][count] [flags]
                        :number と同じです。

                                                        :#!
:#!{anything}           無視されます。そのため、次のようにして Vim script を実
                        行することができます: >
                                #!vim -S
                                echo "this is a Vim script"
                                quit
<
                                                        :z E144
:[range]z[+-^.=][count] [range]に指定した行の周辺を表示します。[range] を省略
                        した場合は現在行の周辺を表示します。

                        行の範囲をどれだけ表示するかは [count] に指定します。
                        [count] を省略し、ウィンドウが一つだけなら 'scroll' オ
                        プションの 2 倍の数が、そうでなければカレントウィンド
                        ウの高さから 3 を引いた数が使われます。これは、下の表
                        の "画面" の値です。

                        [count] が指定された場合は 'window' オプションがその値
                        に設定されます。

                        :z はマークを付加して使うこともできます。次の効果があ
                        ります。

                        記号   開始行        終了行       新しいカーソル位置  ~
                        ----   ------        ------         ----------
                        +      現在行        1画面先        1画面先
                        -      1画面前       現在行         現在行
                        ^      2画面前       1画面前        1画面前
                        .      半画面前      半画面先       半画面先
                        =      半画面前      半画面先       現在行

                        マークを省略した場合は、"+" が使われます。マークが "="
                        の場合は、現在行の周りにマイナス記号で作った線が表示さ
                        れます。

                                                        :z!
:[range]z![+-^.=][count]
                        ":z" と同じですが、[count]が指定されてない時、デフォル
                        トでVimのウィンドウの高さ-1になります。

:[range]z[!]#[+-^.=][count]                             :z#
                        ":z" や ":z!" と同じですが、行番号も表示します。

                                                        :=
:= [flags]              最終行の行番号を表示します。
                        [flags] については ex-flags を参照してください。

:{range}[flags]       {range} で指定した範囲の最終行の行番号を表示します。例
                        えば、次のコマンドは現在行の行番号を表示します。
                                :.=
                        [flags] については ex-flags を参照してください。

:norm[al][!] {commands}                                 :norm :normal
                        ノーマルモードコマンド {commands} を実行します。コマン
                        ドラインからノーマルモードのコマンドを実行できます。
                        {commands} は、ノーマルモードで入力されたときと同じよ
                        うに実行されます。{commands} による変更は、一回のアン
                        ドゥで取り消されます。
                        エラーが発生すると実行停止します。

                        [!] を付けた場合はマップは適用されません。
                        付けなかった場合、このコマンドが非再帰マップ
                        (:noremap) 内で使われたとしても、引数は再マップされ
                        ます。

                        {commands} は実行を完了する (ノーマルモードに戻る) 必
                        要があります。
                        {commands} が完了しない場合は、最後のコマンドが<Esc>
                        や <C-C> で終了したのと同じように動作します。
                        挿入モードも必ず完了します (挿入モードを開始するには
                        :startinsert を参照)。":" コマンドも必ず完了します。
                        "Q" や "gQ" を使って Ex モードを開始することはできませ
                        ん。

                        ":normal" の実行中は画面は更新されません。

                        {commands} の最初にスペースは置けません。そうしたい場
                        合はスペースの前にカウント指定の 1 (数字の 1) を置いて
                        ください。"1 " は 1 つのスペースになります。

                        {command} の実行ではオプション 'insertmode' は無視され
                        ます。

                        '|' は :normal コマンドの一部として処理されるので、こ
                        のコマンドの後に他のコマンドを続けて書けません。

                        :normal コマンドは 'maxmapdepth' の制限内で再帰的に呼
                        び出すことができます。

                        :execute コマンドには Vim script の式を指定できるの
                        で、印字可能文字を使って制御文字を入力することもできま
                        す。

                        例: >
                                :exe "normal \<c-w>\<c-w>"

:{range}norm[al][!] {commands}                          :normal-range
                        {range} の各行に対してノーマルモードコマンド{commands}
                        を実行します。{commands} はカーソルが行頭にある状態で
                        実行されます。その他は範囲指定の無い ":normal" コマン
                        ドと同じです。

                                                        :sh :shell E371
:sh[ell]                シェルを起動します。シェルを終了 ("exit"コマンドを実行)
                        すると Vim に戻ってきます。オプション 'shell' に設定さ
                        れているシェルコマンドを使います。
                                                        E360
                        Note: Amiga では、コンパイラから QuickFix モードで Vim
                        が起動された場合には、コンパイラが標準入力を非対話型
                        モードにしてしまうので使用できません。

                                                        :!cmd :!
:!{cmd}                 シェルで {cmd} を実行します。'shell' と 'shelltype' も
                        参照。
                                                        E34
                        {cmd} の中の '!' は以前使用した外部プログラムに置
                        き換えられます ('cpoptions' も参照)。'!' の前にバック
                        スラッシュがある場合はバックスラッシュが削除され '!'
                        は置き換えられません。
                        例: ":!ls" を実行後の ":!echo !\! \\!" は
                        "echo ls ! \!" と解釈、実行されます。

                        {cmd} の中の '|' はシェルに渡されます。'|' を使って
                        Vim コマンドを続けて書くことはできません。(:bar
                        照)。

                        {cmd} が "%" を含んでいたらそれは現在のファイル名に展
                        開されます。"#" を含んでいたらそれは代替ファイル名に展
                        開されます。ファイル名に入っている特殊文字はエスケープ
                        されないので、特殊文字の特殊な意味を打ち消すにはクォー
                        トを使います: >
                                :!ls "%"
<                       ファイル名が "$" を含んでいるならシングルクォートを使
                        うとより良いでしょう、ただしそれでうまくいくのはファイ
                        ル名にシングルクォートが入っていない場合だけです: >
                                :!ls '%'
<                       次の例は常に機能します。ただし長い: >
                                :exe "!ls " .. shellescape(expand("%"))
                        "%" か "#" のリテラルを得るにはバックスラッシュを前に
                        置きます。例えば、"%" で始まるファイルの一覧なら: >
                                :!ls \%*
<
                        {cmd} の終わりを示す改行文字 (newline) 以降の文字は、
                        次の ":" コマンドとして解釈されます。改行文字の前に
                        バックスラッシュがある場合は、バックスラッシュは削除さ
                        れ、改行文字は {cmd} の一部として解釈されます。改行文
                        字の前にバックスラッシュがいくつあっても、一つだけが削
                        除されます。

                        Unix ではシェルを非対話型モードで起動します。対話型
                        モードで起動したい場合 (aliasを使いたい場合など) は、
                        'shellcmdflag' に "-ic" を設定してください。
                        Win32の場合は:!startも参照。

                        外部プログラムを実行した後で、開いているファイルのタイ
                        ムスタンプとサイズがチェックされます timestamp

                        外部プログラムはメッセージを出力するかもしれないので、
                        外部プログラムを実行した後にスクリーンが再描画されます。
                        そのため、プログラムの出力を見逃してしまわないように、
                        hit-enter プロンプトが表示されます。プロンプトを表示し
                        たくない場合は、次のようにします: >
                                :silent! !{cmd}
<                       これでスクリーンは再描画されません。外部プログラムが何
                        かを出力した場合は CTRL-L や ":redraw!" で再描画できま
                        す。しかし、これは termcap の t_ti と t_te のエン
                        トリに何が設定されているかに依存します。
                        shell-windowも参照。

                                                        :!!
:!!                     最後の ":!{cmd}" を繰り返します。

                                                        :ve :ver :version
:ve[rsion]              エディタのバージョンを表示します。コンパイル時に
                        "__DATE__" が利用可能だった場合には、コンパイルされた
                        日時も表示されます。利用不可だった場合は、リリースの最
                        終修正日時が表示されます。
                        Vim の、どの機能が有効になっているかも表示されます。機
                        能名の前に '+' があれば、その機能は有効になっていま
                        す。'-' のときは無効になっています。
                        機能の有無を変えるには feature.h を編集して、Vim をコ
                        ンパイルし直す必要があります。Vim script から機能の有
                        無を確認するには has() を使います。以下に、機能の概
                        要を示します。
                        行頭の文字はその機能が含まれる最小構成です:
                           T    tiny (常に含まれる)
                           N    normal
                           H    huge
                           m    手動で組み込むか他の機能に依存
                           -    削除された機能
                         (none) システム依存
                        例えば "N" と書いてあれば、その機能は
                        normal、huge バージョンの Vim に含まれます。

                                                        +feature-list
   +acl               ACL サポートを含む
   +ARP               Amiga のみ: ARP サポートを含む
H  +arabic            Arabic言語サポート
H  +autochdir         autochdir オプションをサポート
T  +autocmd           :autocmd, 自動コマンド実行。8.0.1564 以降は常に有効
H  +autoservername    自動的に clientserver を有効にする
m  +balloon_eval      GUIでの balloon-eval サポート。GUI が有効で、
                        Netbeans/Sun Workshop (+sun_workshop) または +eval
                        が有効な場合に利用できます。
H  +balloon_eval_term 端末での balloon-evalサポート、'balloonevalterm'
N  +browse            :browse コマンド
T  ++builtin_terms    全部の組み込み端末 builtin-terms 9.0.0280 以降は常に
                        有効
N  +byte_offset       'statusline'の'o'フラグ、go:gotoをサポート
m  +channel           プロセス間通信 channel
T  +cindent           'cindent', C言語インデント; 常に有効
N  +clientserver      UnixとWin32: リモート呼び出し clientserver
   +clipboard         clipboard サポートコンパイル済み
   +clipboard_working clipboard サポートコンパイル済みかつ動作中
T  +cmdline_compl     コマンドライン補完 cmdline-completion
T  +cmdline_hist      コマンドライン履歴 cmdline-history
T  +cmdline_info      'showcmd' と 'ruler'; 9.0.0657 以降は常に有効
S  +cmdwin            cmdline-window サポート
T  +comments          'comments' サポート
N  +conceal           "conceal" サポート。conceal :syn-conceal 他 参照。
N  +cryptv            暗号化サポート encryption
H  +cscope            cscope サポート
T  +cursorbind        'cursorbind' サポート
m  +cursorshape       termcap-cursor-shape サポート
m  +debug             Vim がデバッグ用にコンパイルされた
N  +dialog_gui        :confirm のGUIダイアログをサポート
N  +dialog_con        :confirm のコンソールダイアログをサポート
N  +dialog_con_gui    :confirm GUIとコンソールダイアログをサポート
N  +diff              vimdiff'diff'
N  +digraphs          digraphs E196
   +directx           Win32 GUI のみ: DirectX と 'renderoptions'
   +dnd               "~レジスタ quote_~を使ったDnDのサポート
H  +emacs_tags        emacs-tags ファイル
N  +eval              式評価 {訳注: Vim script} eval.txt
T  +ex_extra          今は常にオン、かつてVimの拡張Exコマンドのためにあった
N  +extra_search      'hlsearch' と 'incsearch' オプション
-  +farsi             削除済み; farsi 言語
T  +file_in_path      gfCTRL-W_f と <cfile> 9.0.265 以降は常に有効
N  +find_in_path      include ファイル検索: [I:isearch
                        CTRL-W_CTRL-I:checkpath、その他
N  +folding           folding
   +footer            gui-footer
   +fork              Unix のみ: fork シェルコマンド
   +float             浮動小数点数サポート
N  +gettext           メッセージの翻訳 multi-lang
-  +GUI_Athena        Unix のみ: Athena GUI
   +GUI_neXtaw        Unix のみ: neXtaw GUI
   +GUI_GTK           Unix のみ: GTK+ GUI
   +GUI_Motif         Unix のみ: Motif GUI
   +GUI_Photon        QNX  のみ: Photon GUI
m  +hangul_input      ハングル入力サポート hangul
   +iconv             iconv() 関数が組み込まれている
   +iconv/dyn         iconv-dynamic /dyn と同じ
T  +insert_expand     insert_expand 挿入モード補完
m  +ipv6              IPv6 ネットワーク通信サポート channel
m  +job               job の開始と停止 job
T  +jumplist          jumplist; 8.2.3795以降は常に有効
H  +keymap            'keymap'
N  +lambda            lambda と closure
H  +langmap           'langmap'
N  +libcall           libcall()
N  +linebreak         'linebreak''breakat' と 'showbreak'
T  +lispindent        'lisp'
T  +listcmds          バッファリストや引数リストに対するVimコマンド
                        buffer-hidden :argdelete
T  +localmap          バッファローカルなマップのサポート :map-local
m  +lua               Lua インターフェイス
m  +lua/dyn           Lua インターフェイス /dyn
N  +menu              :menu
N  +mksession         :mksession
T  +modify_fname      filename-modifiers
T  +mouse             マウス操作 mouse-using
N  +mouseshape        'mouseshape'
N  +mouse_dec         Unix のみ: Dec端末マウス操作 dec-mouse
N  +mouse_gpm         Unix のみ: Linuxコンソールマウス操作 gpm-mouse
m  +mouse_gpm/dyn     +mouse_gpm と同じだが、ライブラリへの依存がオプショ
                        ナル /dyn
N  +mouse_jsbterm     JSB マウスサポート jsbterm-mouse
N  +mouse_netterm     Unix のみ: nettermマウス操作 netterm-mouse
N  +mouse_pterm       QNX  のみ: ptermマウス操作 qnx-terminal
N  +mouse_sysmouse    Unix のみ: *BSD コンソールマウス操作 sysmouse
N  +mouse_sgr         Unix のみ: sgrマウス操作 sgr-mouse
N  +mouse_urxvt       Unix のみ: urxvtマウス操作 urxvt-mouse
N  +mouse_xterm       Unix のみ: xtermマウス操作 xterm-mouse
T  +multi_byte        Unicodeサポート、16ビット、32 ビット文字 multibyte
   +multi_byte_ime    Win32 IMEサポート
N  +multi_lang        多言語サポート multi-lang
m  +mzscheme          Mzscheme インターフェイス mzscheme
m  +mzscheme/dyn      Mzscheme インターフェイス mzscheme-dynamic /dyn
m  +netbeans_intg     netbeans
T  +num64             64ビットの数値をサポート Number
                        8.2.0271以降は常に有効になっている。実際の数値のサイズ
                        を確認するにはv:numbersizeを使用すること。
m  +ole               Win32 GUI のみ: ole-interface
N  +packages          packages の読み込み
T  +path_extra        'path''tags'での上下階の検索 9.0.0270 以降は常に有効
m  +perl              Perl インターフェイス perl
m  +perl/dyn          Perl インターフェイス perl-dynamic /dyn
N  +persistent_undo   永続 undo undo-persistence
N  +popupwin          ポップアップウィンドウ popup-window
   +postscript        :hardcopy でPostScriptファイルの書き出し
N  +printer           :hardcopy コマンド
H  +profile           :profile コマンド
m  +python            Python 2 インターフェイス python
m  +python/dyn        Python 2 インターフェイス python-dynamic /dyn
m  +python3           Python 3 インターフェイス python
m  +python3/dyn       Python 3 インターフェイス python-dynamic /dyn
m  +python3/dyn-stable
                        Python 3 インターフェイス python-dynamic
                        python-stable /dyn
N  +quickfix          :make と quickfix コマンド
N  +reltime           reltime() 関数, 'hlsearch'/'incsearch' タイムアウト,
                        'redrawtime' オプション
H  +rightleft         右から左へタイプ 'rightleft'
m  +ruby              Ruby インターフェイス ruby
m  +ruby/dyn          Ruby インターフェイス ruby-dynamic /dyn
T  +scrollbind        'scrollbind'
N  +signs             :sign
T  +smartindent       'smartindent'
H  +sodium            より良い暗号化サポートのために libsodium とコンパイル
                        されている
H  +sound             sound_playevent()sound_playfile() 関数等
N  +spell             スペルチェックサポート spell
N  +startuptime       --startuptime 引数
N  +statusline        オプション'statusline''rulerformat'と、
                        'titlestring''iconstring'の特殊フォーマット
-  +sun_workshop      削除済み; workshop
N  +syntax            構文強調 syntax
   +system()          Unix のみ: +forkの反対
T  +tag_binary        タグファイル内の高速(二分探索)検索 tag-binary-search
-  +tag_old_static    削除済み; 静的タグの方法 tag-old-static
-  +tag_any_white     削除済み; タグファイル内の空白を許すためのものだった
m  +tcl               Tcl インターフェイス tcl
m  +tcl/dyn           Tcl インターフェイス tcl-dynamic /dyn
m  +terminal          ターミナルウィンドウのサポート terminal
   +terminfo          terminfoでtermcapを代替
N  +termresponse      t_RV と v:termresponse のサポート
N  +termguicolors     xterm互換端末での 24 ビット色のサポート
T  +textobjects       text-objects 選択。9.0.0222 以降は常に有効。
N  +textprop          text-properties
   +tgetent           非Unix のみ: 外部termcapを使用可能
N  +timers            timer_start() 関数
T  +title             ウィンドウタイトルとアイコン設定 'title' 'icon';
                        常に有効
N  +toolbar           gui-toolbar
T  +user_commands     ユーザー定義コマンド user-commands
                        8.1.1210 からは常に有効。
H  +vartabs           可変幅のタブストップ。'vartabstop'
T  +vertsplit         ウィンドウの垂直分割 :vsplit; 8.0.1118 からは常に
                        有効。
T  +vim9script        Vim9 script
N  +viminfo           'viminfo'
T  +virtualedit       'virtualedit' 8.1.826 からは常に有効
T  +visual            ビジュアルモード Visual-mode 7.4.200からは常に有効
T  +visualextra       拡張ビジュアルモードコマンド blockwise-operators
T  +vreplace          gR と gr
   +vtp               MS-Windows コンソール上での 'termguicolors' のサポート
T  +wildignore        'wildignore' 9.0.0278 以降は常に有効
T  +wildmenu          'wildmenu' 9.0.0279 以降は常に有効
T  +windows           複数ウィンドウ; 8.0.1118 からは常に有効
m  +writebackup       'writebackup'がデフォルトで有効
m  +xim               Xインプットメソッド xim
   +xfontset          Xフォントセットサポート xfontset
N  +xattr             拡張属性サポート付きでコンパイルされている (Linux のみ)
   +xpm               pixmap サポート
m  +xpm_w32           Win32 GUI のみ: pixmap サポート w32-xpm-support
   +xsmp              XSMP(X session management)サポート
   +xsmp_interact     対話型XSMP(X session management)サポート
N  +xterm_clipboard   Unix のみ: xtermクリップボード操作
m  +xterm_save        xtermのスクリーンを保存と復帰 xterm-screens
N  +X11               Unix のみ: ウィンドウタイトルを復帰可能 X11

                                                        /dyn E370 E448
                        機能が動的ライブラリを利用する場合には機能名に"/dyn"
                        が付加されます。

:ve[rsion] {nr}         現在は無視されます。これはかつて .vimrc の中でバージョ
                        ン番号をチェックするために使われていました。現在は
                        ":if" コマンドを使ってバージョン依存の振る舞いを記述で
                        きるので、削除されています。

                                                        :redi :redir
:redi[r][!] > {file}    コマンドの出力 (メッセージ) を {file} にリダイレクトし
                        ます。メッセージは、リダイレクトを終了するまで、ファイ
                        ルに出力されます。メッセージは画面にも表示されます。
                        [!] を付けたときは、既存のファイルが上書きされます。
                        [!] を省略した場合は、すでに {file} が存在していると、
                        コマンドは失敗します。

                        ":redir" を同時に複数使用することはできません。
                        ":redir" を実行すると、新しいリダイレクトを開始する前
                        に、すでに実行されている他のリダイレクトは閉じられま
                        す。
                        再帰的に実行するには execute() を調べてください。

                        実行中のコマンドやメッセージがスクリーンに表示されない
                        ようにするには、コマンドを関数の中に書き、その関数を
                        ":silent call Function()" と実行してください。
                        このコマンドの代わりに、オプション 'verbosefile' を使
                        うこともできます。":redir" と同時に使うこともできま
                        す。

:redi[r] >> {file}      メッセージを {file} にリダイレクトします。
                        {file} が既に存在する場合は追記します。

:redi[r] @{a-zA-Z}
:redi[r] @{a-zA-Z}>     メッセージをレジスタ {a-z} にリダイレクトします。レジ
                        スタ名が大文字 {A-Z} の場合は、そのレジスタに追記され
                        ます。レジスタ名の後ろの ">" は省略可能です。
:redi[r] @{a-z}>>       メッセージをレジスタ {a-z} に追記します。

:redi[r] @*>
:redi[r] @+>            メッセージをセレクションまたはクリップボードにリダイレ
                        クトします。互換性のため、レジスタ名の後ろの ">" は省
                        略できます。quotestar と quoteplus を参照。
:redi[r] @*>>
:redi[r] @+>>           メッセージをクリップボードに追記します。

:redi[r] @">            メッセージを無名レジスタにリダイレクトします。互換性の
                        ため、レジスタ名の後ろの ">" は省略できます。
:redi[r] @">>           メッセージを無名レジスタに追記します。
                                                        E1092
:redi[r] => {var}       メッセージを変数にリダイレクトします。
                        旧来のスクリプトでは: 変数が存在しない場合は、作成され
                        ます。変数がすでにある場合は、空文字列で初期化されま
                        す。リダイレクトを開始した後で変数を変更したり、ロック
                        したり、変数タイプを変更したりすると、それ以降のコマン
                        ドがメッセージを出力するときにエラーが起こります。ロー
                        カルな変数(関数内での l:var あるいはスクリプト内での
                        s:var)を使用していて、別の `:redir` によって現在のもの
                        が終了した場合、スコープが異なることで代入が失敗するこ
                        とがあります。
                        Vim9 script では: 変数が文字列として宣言されている必要
                        があります。
                        リダイレクトが終了するまでは、変数は空のままです。
                        文字列変数のみ使えます。
                        コマンド1つの出力を取得するのにはリダイレクトの代わりに
                        execute() 関数を使うことができます。

:redi[r] =>> {var}      メッセージを変数に追記します。文字列変数のみ使えます。
                                                                 E1185
:redi[r] END            メッセージのリダイレクトを終了します。

                                                        :filt :filter
:filt[er][!] {pattern} {command}
:filt[er][!] /{pattern}{command}
                        コマンドの出力を {pattern} に一致する行に制限します。
                        例として xml ファイルだけを一覧する場合には以下のよう
                        にします: >
                                :filter /\.xml$/ oldfiles
<                       [!] を付けたときは、コマンドの出力を {pattern} に一致
                        しない行に制限します。

                        {pattern} は Vim の検索パターンです。パターンを囲む
                        "/" は、{pattern} 内に使われない限り、非ID文字
                        ('isident') で代用できます。パターンを囲む文字を省略
                        した場合は、パターンにバー文字 {訳注: "|"} を含むこと
                        はできなくなります。'ignorecase' は使われません。

                        パターンは出力に部分一致でマッチするので、行全体に
                        マッチするパターンを指定する必要はありません。一部のコ
                        マンドだけがフィルタリングをサポートしているので、サ
                        ポートしているかどうかは実際に試してみてください。フィ
                        ルタリングをサポートするコマンドの一部:
                           :#          - 行全体をフィルタ
                           :clist      - ファイル名かモジュール名でフィルタ
                           :command    - コマンド名でフィルタ
                           :files      - ファイル名でフィルタ
                           :highlight  - ハイライトグループでフィルタ
                           :jumps      - ファイル名でフィルタ
                           :let        - 変数名でフィルタ
                           :list       - 行全体をフィルタ
                           :llist      - ファイル名かモジュール名でフィルタ
                           :marks      - 現在のファイル内のテキストか他のファ
                                           イルのファイル名でフィルタ
                           :oldfiles   - ファイル名でフィルタ
                           :registers  - レジスタの内容でフィルタ
                                           (複数行は動作しない)
                           :set        - オプション名でフィルタ

                        通常のメッセージだけがフィルタリングされ、エラー
                        メッセージはされません。 {訳注: 常に出力されます}

                                                :sil :silent :silent!
:sil[ent][!] {command}  {command} を静かに実行します。メッセージは表示されず、
                        メッセージ履歴にも残りません。
                        [!] を付けた場合は、エラーが起きたときでもエラーメッ
                        セージは表示されず、コマンドやマップは中断されません。
                        その場合でも v:errmsg はセットされます。
                        [!] を付けない場合は、エラーメッセージは通常どおりに表
                        示されます。
                        :redir によるリダイレクトは通常どおり機能します。
                        :silent を使うとコマンドの出力をスクリーンに表示する
                        ことなくリダイレクトすることができます。例: >
                            :redir >/tmp/foobar
                            :silent g/Aap/p
                            :redir END
<                       ノーマルモードコマンドを静かに実行するには:normal
                        マンドを使用します。例えばメッセージを表示することなく
                        文字列を検索するには: >
                            :silent exe "normal /path\<CR>"
<                       ":silent!" は失敗するかもしれないコマンドを実行すると
                        きには便利ですが、エラーが無視されてしまいます。例: >
                            :let v:errmsg = ""
                            :silent! /^begin
                            :if v:errmsg != ""
                            : ... パターンは見つかりませんでした
<                       ":silent" は hit-enter プロンプトも抑制します。外部プ
                        ログラムを実行したとき、その出力は表示されたままになっ
                        てしまいます。その場合はCTRL-Lでスクリーンをきれいに
                        できます。
                        ":silent menu ..." はコマンドをコマンドラインにエコー
                        しないメニューを定義できます。しかしメニューに割り当て
                        たコマンドのメッセージは表示されます。表示しないように
                        するにはそのコマンド自身に ":silent" を付けてください:
                        ":silent menu .... :silent command"

                                                :uns :unsilent
:uns[ilent] {command}   {command} を静かでなく実行します。:silent コマンドが
                        使用されているときのみ違いがでます。
                        :silent が使われていてもメッセージを表示したいときに
                        使用します。次の例では、:silent を使ってファイル読み
                        込みに関するメッセージを抑制しつつ、:unsilent を使っ
                        て各ファイルの最初の行を表示できるようにしています: >
                :silent argdo unsilent echo expand('%') .. ": " .. getline(1)
<

                                                :verb :verbose
:[count]verb[ose] {command}
                        'verbose' に [count] を設定した状態で {command} を実行
                        します。[count] を省略した場合は1が設定されます。
                        ":0verbose" として 'verbose' をゼロにすることもできま
                        す。
                        ":silent" と一緒に使用すると、メッセージは生成されます
                        が、表示はされません。
                        ":silent" と ":verbose" を一緒に使用するとメッセージを
                        生成して v:statusmsg を確認することができます。例: >
                                :let v:statusmsg = ""
                                :silent verbose runtime foobar.vim
                                :if v:statusmsg != ""
                                :  " foobar.vim が見付からない
                                :endif
<                       コマンドを連続させた場合は、":verbose"は最初のコマンド
                        だけに適用されます: >
                                :4verbose set verbose | set verbose
<                                 verbose=4 ~
                                  verbose=0 ~
                        メッセージをログファイルに出力するには 'verbosefile'
                        を使ってください。

                                                        :verbose-cmd
Vim のオプション、マップ、短縮入力、ユーザー定義関数、ユーザー定義コマンド、強
調グループ、自動コマンド、を表示するとき、'verbose' がゼロ以外だと、それが設定
された場所も表示されます。手動で設定したときは "Last set" メッセージは表示され
ません。関数、ユーザーコマンド、自動コマンド、を実行中に設定された場合には、そ
のコマンドを定義したスクリプトが表示されます。
{+eval が有効な場合のみ利用できます}

                                                        K
K                       カーソル位置のキーワードを調べるためのプログラムを実行
                        します。プログラムの名前はオプション 'keywordprg' (kp)
                        で設定します (初期設定は "man")。キーワードはアルファ
                        ベット、数字、'iskeyword' に設定された文字から構成され
                        ます。
                        カーソルの下、もしくは右側のキーワード使用されます。次
                        のコマンドで同じことができます: >
                                :!{program} {keyword}
<                       Vim の tools ディレクトリにサンプルプログラムがありま
                        す。"ref" という簡易スペルチェックプログラムです。
                        特別なケース:
                        - 'keywordprg' が ":" で始まるならば、それは Vim の Ex
                          コマンドとして [count] を伴って実行されます。
                        - 'keywordprg' が空の場合は、":help" コマンドが使われ
                          ます。検索しやすくするために 'iskeyword' に文字を追
                          加すると良いでしょう。
                        - 'keywordprg' が "man" もしくは ":" で始まる場合
                          は、"K" の前に入力されたカウントが "man" と
                          キーワードの間に挿入されます。例えば、"mkdir" に
                          カーソルがあって、"2K" を実行すると、結果はこのよう
                          になります: >
                                !man 2 mkdir
<                       - 'keywordprg' が "man -s" の場合は、"K" の前に入力さ
                          れたカウントは "-s" の後に挿入されます。カウントを省
                          略した場合は、"-s" は除去されます。

                                                        v_K
{Visual}K               "K" と同じですが、キーワードにはビジュアル選択されたテ
                        キストが使用されます。複数行を選択したときは機能しませ
                        ん。

[N]gs                                                   gs :sl :sleep
:[N]sl[eep] [N][m]      [N] 秒間何もしません。[m] を付けると、[N] ミリ秒間ス
                        リープします。"gs" に指定する数値は常に秒単位です。省
                        略時は 1 秒間スリープします。 >
                             :sleep          " 1 秒スリープ
                             :5sleep         " 5 秒スリープ
                             :sleep 100m     " 100 ミリ秒スリープ
                             10gs            " 10 秒スリープ
<                       CTRL-C で割り込むことができます(MS-Windowsでは
                        CTRL-Break)。"gs" は "goto sleep" の略です。
                        カーソルが表示可能な位置にある場合は、スリープしている
                        間、カーソルはテキスト中に表示されます。
                        スリープ中に受信した netbeans メッセージは処理されま
                        す。{+netbeans_intg 機能つきでコンパイルされたときの
                        み利用可能}

                                                        :sl! :sleep!
:[N]sl[eep]! [N][m]     上記と同じですが、カーソルが非表示となります。

                                                        :xrestore :xr
:xr[estore] [display]   X11サーバーへの接続を再初期化します。Xサーバーが再起動
                        した後に便利です。例えば、screen/tmux内でVimを長時間実
                        行していて、異なるマシンから接続しているとき。
                        [display] は $DISPLAY 環境変数の形式にする必要がありま
                        す (例: "localhost:10.0")
                        [display] を省略すると、前回このコマンドの実行で使用し
                        たものと同じ値を使用して、X11サーバーへの接続を再初期
                        化します。値が指定されていない場合は、Vimの起動時と同
                        じ環境変数 $DISPLAY の値が使用されます。
                        {+clipboard 機能つきでコンパイルされたときのみ利用可
                        能}

                                                        g_CTRL-A
CTRL-A                MEM_PROFILING を define して Vim をコンパイルしたとき
                        み使えます (通常は使いません)。メモリ使用量の統計を表
                        示します。Vim をデバッグするときなどに使います。
                        ビジュアルモード時のインクリメントは v_g_CTRL-A を参
                        照。

==============================================================================
2. less、more の代わりに Vim を使う                             less

less や more ではファイルを構文強調表示できません。代わりに、Vim を使うことが
できます。それには、シェルスクリプト "$VIMRUNTIME/macros/less.sh" を使います。

このシェルスクリプトは Vim script "$VIMRUNTIME/macros/less.vim" を使って、
less のコマンドをシミュレートするためのマップを設定します。less コマンド以外は
通常どおり、Vim のコマンドを使うことができます。

完璧に同じ動作ではありません。例えば、短いファイルを表示する場合でも、Vim はス
クリーンを占有します。しかし、ほとんどの場合は十分に機能します。それにとにか
く、構文強調表示することができます。

"h" キーを押すと使用できるコマンドのショートヘルプが表示されます。

もし less を使っていて異なるオプションを設定したい場合は vimrc に LessInitFunc
を定義します。例: >

        func LessInitFunc()
          set nocursorcolumn nocursorline
        endfunc
<

 vim:tw=78:ts=8:noet:ft=help:norl: