vimコマンドの完全なリスト
私はVimを2年以上使っており、マニュアルも一通り見ています。今はもうあまり使っていませんが、メモを投稿し、vim好きの友人と共有したいと思います。
1. Vimについて
vimは私のお気に入りのエディタで リナックス は、Linuxで2番目に強力なエディタです。emacsは世界ナンバーワンとして認知されていますが、emacsを使うことはviを使うことに比べて編集の効率が悪いと思います。viを初めて使うなら、vimtutorを実行するのは賢い選択です。(システム環境が中国語でなく、中国語でvimtutorを使いたい場合は、vimtutor zhを実行します)
1.1 Vimのいくつかのモード
- 通常モード。ショートカット・コマンドを使用するか、:Enterコマンドラインを押してください。
- 挿入モード。テキストを入力することができます。通常モードでは、i、a、oなどを押すことで挿入モードになります。
- ビジュアルモード。通常モードでvを押すと、ビジュアルモードになります。ビジュアルモードでは、カーソルを動かしてテキストを選択します。vを押すとビジュアルラインモードになり、常に行全体が選択されます。ctrl+vでビジュアルブロックモードになります。
- 置き換えモード。通常モードでは、Rボタンで入力します。
2. Vimを起動する
- vim -c cmd ファイル。ファイルを開く前に、指定されたコマンドを実行します。
- vim -r ファイル 異常終了した最後のファイルを復元します。
- vim -R file: ファイルを読み取り専用で開きますが、強制的に保存することができます。
- vim -M file: ファイルを読み取り専用で開きますが、強制的に保存しません。
- vim -y num file: 編集ウィンドウのサイズをnum行に設定します。
- vim + file:ファイルの終端から開始します。
- vim +num file: 数行目から開始します。
- vim +/string file: ファイルを開き、最初に見つかった文字列にカーソルを合わせます。
- vim -remote ファイル。指定されたファイルを既存の vim プロセスで開きます。複数の vim セッションを有効にしたくない場合に便利です。ただし、vim を使用する場合、VIM という名前のサーバを探します。すでに gvim が起動している場合、gvim -remote file を使用すると、既存の gvim でファイルを開くことができることに注意してください。
3. 文書操作
- :e file - 現在編集しているファイルを閉じ、新しいファイルを開きます。現在のファイルへの変更が保存されていない場合、vi は警告を発します。
- :e! file - 現在のファイルへの変更を放棄し、新しいファイルを編集します。
- :e+file - 新しいファイルを起動し、ファイルの末尾から編集します。
- :e+n file - 新しいファイルを起動し、n 行目から編集を開始します。
- :enew - 新しい、名前のないドキュメントをコンパイルします。(CTRL-W n)
- :e - 現在のドキュメントを再読み込みします。
- :e! - 現在のドキュメントを再読み込みし、行った変更を破棄します。
- :e# または ctrl+^ - 編集したばかりのドキュメントに戻ることができ、非常に便利です。
- :f または ctrl+g - ドキュメント名、変更されているかどうか、カーソル位置が表示されます。
- :f ファイル名 - 保存が名前を付けて保存と同じ場合、編集したファイルの名前を変更します。
- gf - カーソル文字列をファイル名としてファイルを開きます。
- w - 変更を保存します。
- :n1,n2w filename - n1 行から別の n2 行に選択的に内容を保存します。
- wq - 保存して終了します。
- ZZ - 保存して終了します。
- x - 保存して終了します。
- :q[uit] - 現在のウィンドウを終了します。(CTRL-W q または CTRL-W CTRL-Q)
- :saveas newfilename - 名前を付けて保存します。
-
:browse e - ファイルブラウザを開き、編集するファイルを選択します。ターミナルの場合は netrw 用のファイルブラウザウィンドウを開き、gvim の場合は GUI ブラウザウィンドウを開きます。実際には、sp などの文書を編集するコマンドの後に、:browse を使うことができます。ブラウズして開くディレクトリは、browsedir で設定できます。
- :set browsedir=last - 最後に訪れたディレクトリを使用します(デフォルト)。
- :set browsedir=buffer - 現在のファイルが置かれているディレクトリを使用します。
- :set browsedir=current - 現在の作業ディレクトリを使用します。
- :Sex - ウィンドウを水平方向に分割して、ファイルシステムをブラウズします。
- :Vex - ウィンドウを垂直に分割して、ファイルシステムをナビゲートします。
4. カーソル移動
4.1 基本動作
以下の技は、通常モードでの技です。
- h または backspace:1文字左に移動します。
- l またはスペース:1文字分右に移動します。
- j: 1 行下に移動します。
- k: 1行上に移動します。
- gj:段落内で次の行に移動します。
- gk: 段落内の前の行に移動します。
- + またはEnter:カーソルを次の行の空白でない最初の文字に移動させます。
- -: カーソルを前の行の白抜きの最初の文字に移動します。
- w: カーソルを1ワード先に移動し、次のワードの先頭でカーソルを停止します。
- w: 次の単語の先頭を移動しますが、いくつかの句読点は無視します。
- e: 単語を1つ進め、次の単語の末尾でカーソルを停止します。
- e: 次の単語の最後、または単語の最後に句読点がある場合は句読点まで移動します。
- b: 1語前に戻り、カーソルは前の単語の先頭で停止します。
- b: 前の単語の先頭に移動し、一部の句読点を無視します。
- ge: 1語戻って、カーソルを前の語の末尾で停止させる。
- gE:と同じ ジー ただし、'word'にはその単語に隣接する句読点が含まれる。
- (: 1文進めた。
- ): 1文下がった。
- {: 1段落前に移動しました。
- }: 1段落後ろに移動しました。
- fc: 同じ行の次の c 文字にカーソルを移動する
- Fc: 同じ行の前の c 文字にカーソルを移動する
- tc: 同じ行の次の c 文字にカーソルを移動します。
- Tc: 同じ行の前の c 文字の後にカーソルを移動する
- f & t と共に使用し、一回だけ繰り返す。
- は、fとtと一緒に使用し、逆に繰り返す。
上記はすべてnと一緒に使うことができます。例えば、後述する通常モードで3hと入力すると、カーソルが3文字分左に移動します。
- 0:行頭へ移動します。
- g0:画面上のカーソルがある行の先頭に移動します。
- ^: その行の最初の空白でない文字に移動します。
- g^: と同じです。 ^ が、現在の画面行の最初の空白でない文字に移動する。
- <スパン <スパン : <スパン <スパン <スパン <スパン 動く <スパン <スパン 動く <スパン まで <スパン <スパン ライン <スパン テール <スパン . < / l i > < l i s t y <スパン l e = <スパン " l i s t - s t y <スパン l e : i n h e r i t ! i m p o r t a n t "。 <スパン > g <スパン :行末に移動する </li><listyle="list-style:inherit!important">g : カーソルのある画面の行末を移動します。
- n|: カーソルを再帰的な n 列に移動させる。
- nG:ファイルのn行目に移動する。
- :n<cr> n行目に移動します。
- :$<cr> 最後の行に移動します。
- H:カーソルを画面の一番上の行に移動させる。
- M:カーソルを画面の中央の行に移動します。
- L:カーソルを画面の最下行に移動します。
- gg ファイルの先頭に移動します。
- G:ファイルの末尾に移動する。
4.2 フリップ画面
- ctrl+f。1画面分下にスクロールします。
- ctrl+b: 1画面分上にスクロールします。
- ctrl+d 半画面下にスクロール
- ctrl+u 半画面分上にスクロールします。
- ctrl+e 1行下にスクロールします。
- ctrl+y 1行上にスクロールします。
- n%: ファイルの n% に移動します。
- zz 現在の行を画面の中央に移動します。
- zt: 現在の行を画面の一番上に移動させます。
- zb: 現在の行を画面の下に移動します。
4.3 マークアップ
マーカーを使用して素早く移動します。マーカーに到達したら、Ctrl+oで元の位置に戻ることができます。Ctrl+oとCtrl+iは、ブラウザの戻る、進むと同じようなものです。
- m{a-z}: カーソル位置のマーカー、ローカライズ、現在のドキュメントのみ。
- m{A-Z}: カーソルの位置をマークする、グローバルマーカー。マーク後、Vim を終了して再起動すると、マーカーは有効なままです。
- `{a-z}: マーカー位置へ移動します。
- '{a-z}: マーカー行の先頭に移動します。
- '{0-9}: vim を最後に [2-10] 回閉じたときの位置に戻る。
- "。最後に編集した位置に移動します。"も動作しますが、"は正確に列へ、"は正確に行へ移動します。古い位置にジャンプしたい場合は、C-oを押し、C-iで新しい位置にジャンプすることができます。
- 前回中断した場所に移動します。
- `. : 最後に変更された場所に移動します。
- マーク すべてのマークを表示します。
- :delmarks a b - マーク a と b を削除します。
- :delmarks a-c - マーカ a、b、および c を削除します。
- :delmarks a c-f - マーク a、c、d、e、および f を削除します。
- :delmarks! - 現在のバッファからすべてのマークを削除します。
- :help mark-motions マークについて詳しく見る。
5. テキストを挿入する
5.1 基本的な挿入方法
- i: カーソルの前に挿入する。ちょっとしたコツ:8を押した後iを押して挿入モードに入り、=を入力してescを押してコマンドモードに入ると、8 =が表示される。これは分割行を挿入するときに非常に便利です。例えば、30i+<esc>は36個の+で構成される分割行を挿入します。
- I: 現在の行の最初の空白でない文字の前に挿入します。
- gI: 現在の行の最初の列に挿入する。
- a: カーソルの後に挿入されます。
- a: 現在の行の末尾に挿入します。
- o: 下の新しい行に挿入されます。
- o: 上に改行する。
- :r ファイル名 現在の場所に別のファイルの内容を挿入します。
- :[n]r filename は、他のファイルの内容を n 行目に挿入します。
- :r !date カーソルの位置に現在の日付と時刻を挿入します。同様に、:r !command は、他のシェル・コマンドの出力を現在の文書に挿入します。
5.2 挿入の書き換え
- c[n]w: カーソル位置の1(n)語後を書き換える。
- c[n]l: カーソルの後にある文字を n 文字書き換える.
- c[n]h: カーソルの最初の n 文字を書き換える。
- [n]cc: 現在の [n] 行を修正します。
- [n]s: カーソルの後の1(n)文字を入力した文字に置き換えます。
- [n]S: 指定された行数を削除し、入力されたテキストに置き換えます。
なお、cnw,dnw,ynwのような形式は、ncw,ndw,nywと書くこともできる。
6. カット・コピー・登録
6.1 カット&コピー&ペースト
- [n]x: カーソルの右側にあるn文字をカットします。d[n]lと同等です。
- [n]x: カーソルの左側に n 文字を切り詰めます。d[n]h と同じです。
- y: ビジュアルモードで選択されたテキストをコピーします。
- yy または Y:テキストの行全体をコピーします。
- y[n]w: 1 (n) 単語をコピーします。
- y[n]l: カーソルの右側に1文字(n文字)コピーします。
- y[n]h: カーソルの左側に 1(n) 文字コピーする。
- y <スパン <スパン <スパン : </li><li style="list-style:inherit!important">y0 : カーソルの現在位置から行末までコピーします。</li><li style="list-style:inherit!important">:m,ny<cr> m行の内容をn行にコピーします。 </li><li style="list-style:inherit!important">y1G or ygg: カーソルより上の行を全てコピーします。 </li><li style="list-style:inherit!important">yG: カーソルより下の行を全てコピーします。 </li><li style="list-style:inherit!important">yaw and yas: カーソルより上の行を全てコピーします。カーソルが単語や文の先頭になくても、単語をコピーしたり、文をコピーしたりできます。 </li><li style="list-style:inherit!important">d: ビジュアルモードで選択されているテキストを削除(カット)します。 </li><li style="list-style:inherit!important">d : カーソルの現在位置から行末までコピー </li><li style="list-style:inherit!important">y0 : カーソルの現在位置から行頭までコピーします。</li><li style="list-style:inherit!important">:m,ny<cr> m 行の内容を n 行にコピーします。 </li><li style="list-style:inherit!important">y1G または ygg: カーソルより上の行を全てコピーします。 </li><li style="list-style:inherit!important">yG: カーソルより下の行を全てコピーします。 </li><li style="list-style:inherit!important">yaw and yas: カーソルより下の行を全てコピーします。カーソルが単語や文の先頭になくても、単語をコピーしたり、文をコピーしたりできます。 </li><li style="list-style:inherit!important">d: ビジュアルモードで選択されているテキストを削除(カット)します。 </li><li style="list-style:inherit!important">d またはD: 現在の位置から行末までの内容を削除(カット)します。
- d[n]w: 1(n)個の単語を削除(カット)する
- d[n]l: カーソルの右側1(n)文字を削除(カット)します。
- d[n]h: カーソルの左側 1(n) 文字を削除 (カット) します。
- d0: 現在位置から行頭まで削除(カット)します。
- [n] dd: 1(n) 行を削除(切断)する。
- m,nd<cr> m 行を n 行に切断します。
- d1G または dgg: カーソルより上の行を全てトリミングする。
- dG: カーソルより下の行をすべてカットします。
- daw と das。カーソルが単語の先頭や文頭になくても、単語をカットし、文をカットする。
- d/f<cr>: これはより高度な組み合わせのコマンドで、現在の位置と次の f との間のコンテンツを削除します。
- p: カーソルの後に貼り付けます。
- P: カーソルの前に貼り付けます。
6.3 レジスター
- a-z: すべてレジスタ名として使用できます。" ayyは現在の行の内容をaレジスタに入れます。
- A-Z 大文字を使用してレジスタのインデックスを作成し、その内容をレジスタに追加します。例えば、"Ayy は、現在の行の内容を a レジスタに追加します。
- :reg は全レジスタの内容を表示します。
- "": レジスタインデックスが追加されていないときに使用されるデフォルトのレジスタです。
- "*: 現在の選択バッファ、"*yy は現在の行の内容を現在の選択バッファに入れます。
- "+: システムクリップボード." +yy は、現在の行の内容をシステムクリップボードに入れます。
7. 検索と置換
7.1検索
- /something:続くテキストから何かを探します。
- ?something:直前のテキストから何かを探します。
- /pattern/+number。パターンを含む行の次の番号の行でカーソルを停止させる。
- /pattern/-number: パターンを含む行の前の行数でカーソルを停止させる。
- n: 逆方向へ進み、次のものを探す。
- N: 前進して次のものを探す。
7.2 置換
- :s/old/new - 現在の行の最初のoldをnewに置き換えます。
- :s/old/new/g - 現在の行のすべての古いレコードを新しいレコードに置き換えます。
- :n1,n2s/old/new/g - ファイルの n1 行目から n2 行目までのすべての古いファイルを新しいものに置き換えます。
- :%s/old/new/g - ファイル内のすべての古いファイルを新しいものに置き換えます。
- :%s/^/xxx/g - 各行の先頭に xxx を挿入し、^ は行頭を表します。
- :%s/ <スパン <スパン <スパン <スパン / x x x <スパン <スパン / g <スパン - <スパン <スパン <スパン で <スパン <スパン <スパン につき <スパン I <スパン <スパン <スパン ライン <スパン の <スパン <スパン ライン <スパン テール <スパン 挿入 <スパン <スパン 入力 x x x <スパン <スパン <スパン は、その /xxx/g-各行の末尾にxxxを挿入することで、その は行末を表します。
- 置換コマンドはすべてcで終わります。各置換にはユーザーの確認が必要です。例: %s/old/new/gc, プラス i で大文字小文字を無視します (ignore)。
範囲の指定は
- range が指定されていない場合は、現在の行を表示する。
- m,n: m行目からn行目まで。
- 0: 一番最初の行(たぶん)。
- $: 最後の行
- . : 現在の行
- %: すべての行
7.3 正規表現
高度な検索と置換には、正規表現が必要です。
- \d: 10進数用(推測)
- \スペース
- \空白でない文字
- \a: 英字
- \ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
- {m,n}:m文字からn文字を表します。これは \s や \a と一緒に使用され、例えば m ~ n 文字の場合は \a{m,n} となります。
- {m,}:m個から無限個までの文字数を表します。
- **: カレントディレクトリの下にあるすべてのサブディレクトリ。
helpパターンは、より多くのヘルプを取得します。
8. タイプセッティング
8.1 基本的なタイポグラフィ
- << 左にシフト幅でインデントします。
- 右にシフトしてインデントします。
- :ce(nter) この行のテキストを中央揃えにします。
- :le(ft) この行のテキストを左寄せにします。
- :ri(ght) この行のテキストを右へ移動します。
- gq 選択したテキストを並べ替える、つまり、長すぎるテキストを改行する
- gqq 現在の行を再整理する
- gqnq n行の並べ替え
- gqap 現在の段落の順序を変更する
- gqnap n セグメントの並べ替え
- gqnj 現在の行とそれに続く n 行を並べ替えます。
- gqQ 現在の段落を記事の末尾に並べ替える
- J 現在の行と次の行をスプライスする
- gJ 同上 J が、スペースなしでマージされる。
8.2 スペルチェック
- :set spell-turn on spell-checking (スペルチェックをオンにする)。
- :set nospell-turn off spell-checking (スペルチェックをオフにする)
- s-次のスペルに間違いのある単語に移動します。
- [s-前のコマンドと似たような動作をしますが、逆方向から検索します。
- z=-選択可能なスペルミスのリストを表示します。
- zg-その単語のスペルが正しいことをスペルチェッカーに知らせます。
- zw-スペルチェッカーに単語のスペルが間違っていることを知らせます (前のコマンドとは異なります)
8.3 単語の数え方
g ^g は文書中の文字数、行数を数えることができます。中国語の文書では、最後の文字にカーソルを置いて、文字数から行数を引くと、おおよその単語数を数えることができます。上記は、MacやUnixのファイル形式の場合に適用されます。Windowsのファイル形式(改行が2バイト)の場合、単語数は「文字数-行数×2」となります。
9. 複数ドキュメントの編集
9.1 複数のファイルを一度に編集する
など、複数のファイルを一度に開くことができるんです。
vi a.txt b.txt c.txt
- 次のファイルを編集するには、:next(:n)を使用します。
- :2n 次の 2 ファイルを編集します。
- 前のファイルを :previous または :N で編集します。
- 現在のファイルを保存し、次のファイルを編集するには :wnext を使用します。
- 現在のファイルを保存し、前のファイルを編集するには、:wprevious を使用します。
- ファイルの一覧を表示するには、:args を使用します。
- n filenames または :args filenames は新しいファイルのリストを指定します。
- vi -o filenames 水平に分割された複数のウィンドウで、複数のファイルを編集します。
- vi -O filenames 縦に分割された複数のウィンドウで、複数のファイルを編集します。
9.2 複数タグの編集
- vim -p ファイル。複数のファイルを開き、それぞれをタブで表示します。
- :tab, tabnew - ファイル名が追加されている場合は新しいタブでファイルを開き、そうでない場合は空のバッファを開きます。
- ^w gf - カーソル下のパスで指定されたファイルを新しいタブで開きます。
- :tabn - 次のタブに切り替えます。control + PageDownでも同様です。
- :tabp - 前のタブに切り替えます。コントロール + PageUp も利用可能です。
- [n] gt - 次のタブに切り替わります。前に n で、n番目のタグに切り替わります。最初のタグの番号は1です。
- タブ分割 - 現在のバッファの内容を新しいタブで開きます。
- :tabc[close] - 現在のタブを閉じます。
- :tabo[nly] - 他のタブを閉じます。
- :tabs - すべてのタブとそのタブに含まれるウィンドウを一覧表示します。
- :tabm[ove] [N] - n 番目のタブの後に移動するタブを指定します。以下のように tabm 0 を指定すると、現在のタブが最初のタブになります。
9.3 バッファ
- buffers or :ls or :files バッファーの一覧を表示します。
- ctrl+^: 直近の2つのバッファを切り替えます。
- :bn - 次のバッファです。
- :bp - 前のバッファー。
- :bl - 最後のバッファです。
- b[n] または :[n]b - n 番目のバッファにトグルします。
- nbw(ipeout) - n 番目のバッファを完全に削除します。
- nbd(elete) - n 番目のバッファを削除しますが、実際には削除されず、アンリストリストリストに残ります。
- :ba[ll] - 現在のページのすべてのバッファを開きます。各バッファはウィンドウを占有します。
10. スプリットスクリーン編集
- vim -o file1 file2: ウィンドウを水平方向に分割し、file1 と file2 を同時に開く。
- vim -O file1 file2:Split window vertically, both file1 and file2 open
10.1 水平方向の分割
- :split(:sp) - 現在のウィンドウを水平方向に 2 つのウィンドウに分割します。(CTRL-W s または CTRL-W CTRL-S) ターミナルでは、CTRL-S を押すとターミナルがフリーズすることがあるので、CTRL-Q を押して続行することに注意してください。
- :split ファイル名 - ウィンドウを水平方向に分割し、別のファイルを新しいウィンドウに表示します。
- :nsplit(:nsp) - ウィンドウを水平方向に n 行分割する。
- :[N]new - n行の高さのウィンドウを水平に分割し、新しいファイルを編集します。(CTRL-W n または CTRL-W CTRL-N)
- ctrl+w f - ウィンドウを水平に分割し、カーソルがある単語の名前のファイルを新しいウィンドウで開きます。
- C-w C-^ - ウィンドウを水平に分割し、直前に編集したファイルを開きます。
10.2 垂直方向の分割
- :vsplit(:vsp) - 現在のウィンドウを水平方向に分散した 2 つのウィンドウに分割します。(CTRL-W v または CTRL CTRL-V)
- :[N]vne[w] - 新しいウィンドウを垂直に分割します。
- vertical 水平分割コマンド:対応する垂直方向の分割を行います。
10.3 子ウィンドウを閉じる
- :qall - すべてのウィンドウを閉じ、vim を終了します。
- :wall - 変更したすべてのウィンドウを保存します。
- :only - 現在のウィンドウだけを保持し、他のウィンドウは閉じます。(CTRL-W o)
- :close - 現在のウィンドウを閉じます。CTRL-W c でも同じことができます。(:q :x のように動作します)。
10.4 ウィンドウのサイズを変更する
- ctrl+w + - 現在のウィンドウが1行ずつ増加します。n を使用すると n 行分増加することもできます。
- ctrl+w - - 現在のウィンドウを1行ずつ減らします。n行ずつ減らすにはnも使用します。
- ctrl+w _ - 現在のウィンドウを可能な限り大きく展開します。nで行数を設定することもできます。
- :resize n - 現在のウィンドウの高さをn行にします。
- ctrl+w = - すべてのウィンドウで同じ高さです。
- n ctrl+w _ - 現在のウィンドウの高さがn行に設定されます。
- ctrl+w < - 現在のウィンドウが1列分縮小されます。n で n 桁減らすこともできます。
- ctrl+w > -現在のウィンドウを1列分広くします。n で n カラム分広げることもできます。
- ctrl+w | -現在のウィンドウを可能な限り広く表示します。n で列の数を設定することもできます。
10.5 ウィンドウの切り替えと移動
子ウィンドウの切り替えやサイズ変更は、マウスがサポートされていれば簡単です。
- ctrl+w ctrl+w。次のウィンドウに切り替わります。または ctrl+w w.
- ctrl+w p: 前のウィンドウに切り替わります。
- ctrl+w h(l,j,k): 左の(右、下、上)ウィンドウに切り替えます。
- ctrl+w t(b):一番上(一番下)のウィンドウに切り替わる <BR>
- ctrl+w H(L,K,J): 現在のウィンドウを左端(右、上、下)に移動する。
- Ctrl+W R ウィンドウの位置を回転させる。
- ctrl+w T: 現在のウィンドウを新しいタブに移動します。
11. クイックエディット
11.1 ケースを変更する
- ~: カーソル位置の文字の大文字と小文字を反転させます。
- ビジュアルモードではUまたはu。選択したテキストを大文字または小文字に変更します。
- gu(U) は、ある範囲($ や G など)を取り、現在のカーソル位置から指定位置までのすべての文字を小文字または大文字に変換するものである。例えば、ggguG は、先頭から最終行までのすべての文字を小文字に変換する。もう一つの例は gu5j で、これは現在の行と次の4行を小文字に変換します。
11.2 置換(通常モード)
- r: カーソル位置の文字を置き換える。漢字にも対応。
- R: 置換モードに入り、escを押すと通常モードに戻ります。
11.3 元に戻す、やり直し(通常モード)
- [n] u: 1 つの (n) 変更を元に戻す。
- :undo 5 - 変更を 5 回取り消します。
- undolist - アンドゥの履歴です。
- ctrl + r。最後の変更をやり直します。
- U: 現在の行のすべての変更を取り消します。
- :earlier 4m - 4分前に戻る
- :後55秒 - 55秒進む
11.4 マクロ
- . -直前の編集操作を繰り返す
- qa: マクロaの記録開始(キーボード操作の記録)
- q: 録画を停止する
- a:マクロaを再生する
12. 特殊ファイルの編集
12.1 ファイルの暗号化および復号化
- vim -x ファイル。暗号化されたファイルの編集を開始します。
- :X - 現在のファイルのパスワードを設定します。
- :set key= - ファイルからパスワードを削除します。
以下は Dian Foxによってまとめられた、より高度なviのヒントです。
12.2 文書のエンコード
- :e ++enc=utf8 ファイル名, vim にこのファイルを utf-8 エンコーディングで開かせます。
- :w ++enc=gbk, 現在のファイルのエンコーディングが何であれ、それを gbk エンコーディングにダンプします。
- 現在のファイルのエンコーディングを確認するには、 :set fenc または :set fileencoding を使用します。
- vimrc に set fileencoding=ucs-bom,utf-8,cp936 を追加すると、開くファイルに応じて vim が適切なエンコーディングを選択します。cp936 は gbk エンコーディングに対応し、ucs-bom は Windows のファイルフォーマットに対応します。
vim がファイルフォーマットとファイルエンコーディングを正しく扱うには、以下の点に依存します。 ~/.vimrcが正しく設定されていること
12.3 ドキュメントフォーマット
ファイル形式はおおよそ3つあります。unix、dos、macです。この3つのフォーマットの違いは、主にキャリッジリターンキーのエンコーディングにあります。dosではキャリッジリターンとラインフィード、unixではラインフィードのみ、macではキャリッジリターンのみです。
- :e ++ff=dos ファイル名, vim でこのファイルを dos 形式で開くようにします。
- w ++ff=mac ファイル名, このファイルを mac 形式で保存します。
- :set ff, 現在のファイルの形式を表示します。
- vimrc に set fileformats=unix,dos,mac を追加すると、vim が自動的にファイルフォーマットを認識するようになります。
関連
-
発生: collect2 の原因の 1 つ: error: ld returned 1 exit status
-
VCの*.objで定義済みの問題を解決します。
-
Keras/TensorFlowのエラーです。CUDA_ERROR_OUT_OF_MEMORY 解決策
-
デバッグアサーションに失敗しました
-
Python標準ライブラリ(各種モジュールの超定番入門書)
-
python: Image という名前のモジュールがない
-
アプリケーションのPagerAdapterがPagerAdapter#notifyDatを呼び出さずにアダプタの内容を変更しました。
-
java.net.BindException: バインドに失敗しました。EADDRINUSE (アドレスは既に使用中です) 解決方法
-
Angular.js Unknownプロバイダエラー
-
Universal Recovery Masterの見つけ方と完全な削除方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pandas Tutorial [4] データフレームフィルタリングデータ !
-
二重解放または破損(!prev)エラーについて
-
TensorFlowのネイティブランタイムソリューションのロードに失敗しました。
-
IntelliJ maven プロジェクト pom ファイル エラー xx.jar の成果物記述子の読み込みに失敗した問題 解決方法
-
MySql エラー: java.sql.SQLException: ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセスが拒否されました。
-
ArrayAdapterはリソースIDがTextViewである必要がある問題について
-
ModuleNotFoundError を解決する。Pythonに'tensorflow._api'という名前のモジュールはありません。
-
Pythonの一般的なエラーとデバッグ方法 (2)
-
eclipseに「An error has occurred,See the error log for more details.java.lang.NullPointerException」と表示される。
-
Android Studio FAQ -- AndroidManifest.xml のカバレッジに関する問題