vim简明教程(附快速记忆方法)

转自:http://www.yulongjun.com/linux/20170602-01-vim/

vim常见四种模式:

  • 普通模式(normal mode

  • 插入模式(insert mode

  • 可视模式(visual mode

  • 命令模式(excute mode

下面整理了常用的快捷键和记忆方法(结合英文的记忆方法法)


普通模式

光标移动:

WEB^HLG
按键 效果 记忆方法
hjkl 向左/下/上/右移动 ←↑↓→
w 移动到下个单词开头 word
移动到下个单词开头(包含标点) Word
e 移动到下个单词结尾 end
移动到下个单词结尾(单词含标点) End
b 移动到上个单词开头 back
移动到上个单词结尾(单词含标点) Back
0 移动到行首 hard
移动到行首的非空白符 soft
$ 移动到行尾
当前屏幕的第一行 High
M 当前屏幕的中间 Middle
当前页的的最后一行 Low
gg 移动到文件第一行 goto line1
移动到文件最后一行 Goto EOF
5G 移动到第五行 -Goto line5

查找:

;/,?pattern
f{char}/F{char} 在行内向下/向上查找字符{char} (光标在字符上) find/Find
t{char}/T{char} 在行内向下/向上查找字符{char}(光标在字符前面) till /Till
f/F/t/T结合使用,,跟查找顺序相同/相反的下一个匹配项 -
/pattern 文档向下查找匹配项 -
文档内向上查匹配项 n/N /和?结合使用,跟查找顺序相同/相反的下一个匹配项 next/Next

剪切,粘贴:

ywyiwP2dddaw/daWDXu
yy 复制当前行 yank
5yy 复制 5 行 5次yank
当光标在单词首字母处,复制当前单词 yank word
yaw 当光标在单词内部,复制当前单词(单词后面空格也复制) yank around word
当光标在单词内部,复制当前单词(单词后面空格不复制) yank inside word
p 在光标后粘贴 paste
在光标前粘贴 Paste
dd 剪切当前行 delete
剪切 2 行 2次delete
dw/dW 光标在单词首字母处,剪切当前单词 delete word
剪切当前单词(后面有空格也剪切) delete around word
diw/diW delete inside word
剪切,从光标位置到行末 Delete
x 向后剪切掉一个字符,不用进入插入模式 向后x掉
向前剪切掉一个字符,不用进入插入模式 向前X掉
J 去掉行尾的换行符,即连接两行 Join lines
撤销 undo
<ctrl-r> 重做 redo

滚屏:

<Ctrl + d>
<Ctrl + b> 向后滚动一屏 backwards
<Ctrl + f> 向前滚动一屏 forwards
向后滚动半屏 down
<Ctrl + u> 向前滚动半屏 up

插入模式 aosrcw/cW<Esc>
i 从光标前开始插入字符 insert
I 从行首开始插入字符 Insert
从光标后开始插入字符 append
A 从行尾开始插入字符 Append
在当前行之下另起一行,开始插入字符 open a new line
O 在当前行之上另起一行,238);">Open a new line
删除当前字符,然后进入插入模式(替换) substitute
S 删除当前行,然后进入插入模式(替换) substitute
替换当前字符(其实是属于replace模式) replace
R 替换连续的几个字符(属于replace模式) Replace
删掉一个单词/带标点的单词,然后进入插入模式 change
C 删除光标所在行的光标后面的内容 Change
退出插入模式 -

可视模式(visual mode) <ctrl-v>vawvit
v 选择字符 visual
V 选择行 Visual line
选择块 visual block
gv 重复上次的高亮区域 结合可视模式用的o,回到活动端点 vw 光标在单词首字母处,选择单词 visual word
选择单词(包括单词后面的空格) visual around world
viw 选择单词(不包括单词后面的空格) visual inside world
选择标签内的内容(html) visual inside tags

命令行模式 :q!w filenamer!command:syntax on/:syntax off
:w 保存、写入 write
:x/:wq 保存并退出 write quit
直接退出 quit
r filename 读文件内容到当前文件中 read filename
将当前文件内容另存到另一个文件 write filename
!command 执行命令 !command
读入命令的输出 read !command
:set number 设置行符
开启/关闭代码高亮

替换命令:

  1. :s/target/replacement/:替换当前行的第一个targetreplacement

    :s/target/replacement/g:替换当前行的所有的replacement

  2. :n,$s/target/replacement/:替换第n到最后一行的第一个:%s/target/replacement:替换所有行的第一个:%s/target/replacement/g:替换所有行的所有的replacement

  3. #+作为分隔符,/作为匹配项中的内容:

    :s#target/#/replacement#g:替换所有行的第一个target//replacement

    :%s+/oradata/apras/+/user01/apras1+g:替换所有行的/oradata/apras//user01/apras1/


颜色

<ctrl+v+[>

在颜色方案前面插入上述三个按键,效果是蓝色的^[(并不是字符^[,只是这三个键呈现在屏幕的效果)

呈现的效果是这样:

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...