Haste makes waste

vim基本操作(极简版本)

Posted on By lijun

0. 快速参考

命令 意义
:q 退出  
:wq 保存退出  
i insert  
a append  
「Ctrl」f next page  
「Ctrl」b previous page  
:10 第10行  
gg 第一行  
G 最后行  
x 删除一个文字  
dd 删除一行  
yy 复制1行  
n yy 复制n行  
p paste next  
P paste previous  
u undo  
/検索文字列 检索  
n next find  
N previous find  
:ns/old/new n 行目の最初の old を new に置換して終了  
:ns/old/new/g n 行目の全ての old を new に置換して終了  
:%s/old/new/g ファイル全体の検索語句を置換する  
:%s/old/new/gc 置換の度に確認を求める  

1. 三つのモードがあります

  • CommandMode
  • InsertMode
  • VisualMode

image

  • i : カーソルの前に挿入
  • a: カーソルの後ろに挿入
  • I: 該当行の最初の文字へジャンプして、挿入モードに
  • A: 該当行の最後の文字へジャンプして、挿入モードに
  • v: 文字を選択対象として、VisualModeに
  • V: 行を選択対象として、VisualModeに

2. 移動

H←(左) L→(右) J↓(下) K↑(上) すべてのコマンドはCommandModeでしか使えません。

image

  • H / M / L :現在のスクリーンの左上/左中央/左右へ移動
  • 0(数字): 該当行の最初へ移動
  • ^: 該当行の最初の文字へ移動(※中文输入法下,shift+6可以输入)
  • w: 次の単語の頭へ移動
  • W: 次の単語の頭へ移動、()<>などをignoreする
  • e: 次の単語の最後へ移動
  • E: 次の単語の最後へ移動、()<>などをignoreする
  • b: 一つ前の単語の頭へ移動
  • ge: 一つ前の単語の最後へ移動
  • gE: 一つ前の単語の最後へ移動、()<>などをignoreする
  • g_: 該当行の最後の文字(non-blank)へ移動
  • $: 該当行の最後の文字へ移動
  • ctrl -f: 一つスクリーンを進む
  • ctrl -b: 一つスクリーンを戻る

TIP

  1. 全部選択 / Copy: ggVG / y
  2. gg 第一行 V Visual G 最後の行 y copy
  3. すべての行の最初の文字の前に”a”を挿入 :%s/^/a
  4. すべての行の最後の文字の後ろに”a”を挿入 :%s/$/a
  5. コマンドモードで、検索したい単語まで移動して、shift + * にしたら、すべて同じ単語が出てくる、NとShift+Nで単語間移動。

3. 編集

  • :删除从当前光标,到下一个命令之间的内容,
    • 比如dw就是删除一个单词,
    • dd是删除一行,
    • dk向上删除,
    • d$删除从当前光标到最后,
    • d0 删除从当前光标到最开始。
  • c:同d,删除从当前光标,到下一个命令之间的内容,但是同时进入插入模式。组合也相同。
  • x:删除光标后的字符。
  • c:删除光标前的字符。  
  • y:copy 从当前光标,到下一个命令之间的内容。
  • p:粘贴到当前光标之后。
  • P:粘贴到当前光标之前。(大写)

  • r:替换
  • .:重复操作(点号), u撤销操作

  • d / c / y 都是针对一行进行操作,删除一行/复制一行。 另外,很多命令能够组合,比如1yy就是将一行复制后,放入寄存器1中,用1p可以粘贴。
  • :registers 可以查看寄存器的内容。

4. Visual Block

使用 Visual Block能够给每行加上前置字符。

  1. Ctrl+q 进行矩形选择,再用I(ctrl (?shift)+ i) 进入插入模式,输入待插入的文字,再退出插入模式,那么输入的文字,会全部插入到矩形框的前面。(用A进入插入模式的话,输入的文字,会被插入矩形框尾部)

image

  1. 同样的方法,使用s的话,能够进行文本替换。

  2. 使用 Ctrl+q+$ 能够在行尾部追加。

TIP

  1. 为每一行追加行号 :%s/^/\=line(".")/ line(".") 是追加的内容。
  2. 同样,将^ 修改为 $可以在行尾部追加。 %s/^/a 行头追加字符 a

5. 查找和替换

  • :/[查找内容] 或者 :?[查找内容],都可以用来查找,用n或是N进行跳转。
  • :nohl 取消结果高亮。
  • :%s/old/new/gc 替换用语句,c 是用来确认,如果没有c 则直接替换
  • :%s/old/new/g 如果先选择范围,再替换的话,即部分替换。

6. 补全

使用Ctrl + N / Ctrl + P选择已经输入过的单词。