VIM命令整理

1. 初次进入VIM

  1. 不知道处于什么模式,万能命令:,一键回到normal模式,下面的命令没有特殊说明一律是normal模式。
  2. 移动光标:h(左)j(下)k(上)l(右)
  3. 进入输入模式:i
  4. 删除命令: x 删除单个字符,dd(删除一行),J(删除空余行(就是删除回车))
  5. 撤销和重做:u撤销最近一次操作,Ctrl+R重做最近撤销的操作
  6. 其他编辑命令:
    (1)i命令是在光标前插入字符
    (2)a命令则是在光标后插入字符
    (3)o命令在光标下一行插入一个新行并进入insert模式
    (4)O命令在光标上一行插入一个新行并进入insert模式。
  7. 在命令前使用数字表示重做命令,示例:a!!!(在光标后插入三个!),等效为3a!,kkkk(向上移动四行),等效为4k。
  8. 退出命令:ZZ命令保存更改并且退出,:q!强制退出且不保存更改。

移动光标

  1. 按单词移动:w移动到下一个单词头,b移动到上一个单词头,e移动到下一个单词尾,ge移动到上一个单词尾
  2. 移动到行首或者行尾:$移动到行尾,0(zero)移动到行首
  3. 移动到一个字符:fx在本行内查找字符x并移动光标到字符x处,Fx同fx只不过是向左查找, Tx、tx同Fx、fx,只不过光标停在字符x后一个,前一个字符
  4. 匹配括号:如果光标在(上,%会将光标移动到)处
  5. 移动到指定行:numG移动光标到num行,G移动到最后一行,gg移动到第一行,50%移动到文件一半的地方,H移动到文件首,M移动到文件中部,L移动到文件尾部
  6. 当前所在的位置:使用Ctrl+G命令,你可以得到光标当前位置的信息,使用number选项,可以在左侧显示行号,:set number, :set nonumber关闭行号显示,ruler选项让VIM在右下角显示光标的位置
  7. 滚动屏幕:使用Ctrl+D向下移动半个屏幕,使用Ctrl+U向上移动半个屏幕,使用Ctrl+E向上滚动一行,使用Ctrl+Y向下滚动一行,Ctrl+F向前滚动一个屏幕,Ctrl+B向后滚动一个屏幕
  8. 简单的搜索功能:/string搜索string字符串 /?string向前搜索字符串,同时我们可以设置忽略大小写,:set ignorecase,支持正则表达式的一些语法,同时我们可以设置高亮匹配项(hlsearch)
  9. 使用标记:我们使用G命令移动到文件尾,使用“回到原处,使用mark做标记

做小的修改

  1. 操作和移动:d4w删除4个单词,d2e,d$
  2. 更改文本:c2wbe:c更改命令,2w移除两个单词,be插入be字符串
  3. 重复更改:.命令用来重复上一个命令,f<查找第一个<,df>删除<到>的字符,f<, .重复df>
  4. 可视模式:v字符选中,V行选中,Ctrl+V块选中
  5. 移动文本:思路同windows的,剪切粘贴,使用d,移动光标,p粘贴
  6. 复制文本:y复制命令,yy复制整行文本,y$复制到行尾的内容
  7. 使用剪贴板:”*yy复制一行到剪贴板,”*p复制剪贴板的内容到vim
  8. 文本对象: 如果光标在一个单词中间,而你想删除整个单词,你可以使用daw,d是删除命令,aw是文本对象
  9. 替换模式:使用R命令进入替换模式,在这个模式中,输入的字符将会替换光标所在处的字符

使用语法高亮

  1. 开启语法高亮:syntax enable
    仅在VIM支持颜色的时候开启:
    if &t_Co > 1
    syntax enable
    endif
  2. 不同的颜色:使用:colorscheme命令指定颜色主题
    编辑颜色方案文件:term 黑白终端 cterm 彩色终端
    ctermbg 彩色终端背景色 ctermfg 彩色终端前景色
    gui GUI guibg GUI背景 guifg GUI前景

编辑多个文件

  1. 编辑另一个文件::edit foo.txt 如果当前文件有未保存的修改,VIM为提示错误信息,当然你可以使用!来强制执行,修改将会丢失
  2. 打开几个文件:vim one.c two.c three.c :next打开下一个文件, :wnext打开更改并打开下一个文件,:args显示当前所在的文件名,:previos, :wprevios, :last, :first :2next,没有:wfirst,:last
  3. 从一个文件跳转到另一个文件:Ctrl+^跳转到刚才的文件
  4. 使用REGESTERS:”[a-z]使用a-z的一个字母来指定REGESTERS的名字,”fyas复制一条句子到f寄存器,”l3yy复制3行到l寄存器,Ctrl-Vjjww”by复制一个块到b寄存器, “fp粘贴f寄存器的内容, “wdaw删除一个单词并写到w寄存器中
  5. 追加一个文件::write >> logfile
  6. 使用只读文件打开文件:vim -R filename
  7. 禁止修改一个文件:vim -M filename
  8. 改变文件名::edit a.c :saveas b.c

分割窗口

  1. 分割窗口::split Ctrl+W w 在窗口间跳转
  2. 分割窗口并打开一个文件 :split filename
  3. 窗口大小: :3split alpha.c 指定窗口的高度 Ctrl+W + 增大窗口,Ctrl+W - 减小窗口
  4. 垂直分割: :vsplit Ctrl+W h j k l 切换到左,下,上,右的窗口,Ctrl+W t,b切换到顶部或底部的窗口
  5. 对于所有窗口的命令::qall, :wall, :wqall, :qall!
  6. 使用vimdiff查看差异:vimdiff main.c main.c~

大的修改

  1. 替换:substitute只替换每行第一次出现查找字符串的地方,如果要全部替换需要家/g
  2. 命令生效的范围:与sed使用类似,兼容正则表达式的模式匹配

一些技巧

  1. Doe, John 到 John Doe
    :s/([^,]), (.)/\2 \1/
  2. OBJS = \
    version.o \
    pch.o \
    getopt.o \
    util.o \
    getopt1.o \
    inp.o \
    patch.o \
    backup.o
    排序上面的内容
    /^OBJS
    j
    :.,/^$/-1!sort
  3. 倒转行序::g/^/m 0
  4. 单词计数: gCtrl+G
  5. 删除多余的空行:: s/\s\+ //
  6. 6.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值