h # 左 j # 下 k # 上 l # 右 w # 向前移动到下一个单词的开头 } # 跳转到下一个段落 $ # 跳转到当前行的末尾
:vim /pattern/ path
i # 从光标之前的位置开始输入文本 I # 从当前行第一个非空字符之前的位置之前开始输入文本 a # 在光标之后的位置追加文本 A # 在当前行的末尾追加文本 o # 在光标位置下方新起一行并开始输入文本 O # 在光标位置的上方新起一行并开始输入文本 s # 删除当前光标位置的字符并开始输入文本 S # 删除当前行并开始输入文本 gi # 从当前缓冲区上次结束输入模式的地方开始输入文本 gI # 在当前行的第一列的位置开始输入文本 Ctrl-h # 删除一个字符 Ctrl-w # 删除一个单词 Ctrl-u # 删除一整行
vim ~/.vimrc :source %
# 显示行号 :set number # 或 :set nu # 隐藏行号 :set nonumber # 或 :set nonu
# 挂起 Ctrl + z # 恢复 fg
vim 1.txt 2.txt # 查看所有buffer :ls :files # 切换 :buffer 2.txt :buffer 2 # 切换下一个 :bnext # 切换上一个 :bprevious # 删除 :bdelete 2.txt :bdelete 2 # 关闭所有buffer :qall # 关闭所有但不保存 :qall! # 保存并退出 :wqall
vim 1.txt # 垂直切分 :split 2.txt # 左右切分 :vsplit 3.txt # 创建一个新窗口并打开名为filename的文件。 :new filename Ctrl-W H # 移动光标到左边的窗口 Ctrl-W J # 移动光标到下面的窗口 Ctrl-W K # 移动光标到上面的窗口 Ctrl-W L # 移动光标到右边的窗口 Ctrl-W V # 打开一个新的垂直分割的窗口 Ctrl-W S # 打开一个新的水平分割的窗口 Ctrl-W C # 关闭一个窗口 Ctrl-W O # 除了当前窗口,关闭所有其他的窗口
vim file1.js # 在新tab中打开file2.js: :tabnew file2.js :tabnew file.txt # 在tab中打开一个文件 :tabclose # 关闭当前tab :tabnext # 切换至下一个tab :tabprevious # 切换至前一个tab :tablast # 切换至最后一个tab :tabfirst # 切换至第一个tab