Vim使用技巧笔记
边学习 Vim 技巧 边做笔记 学到一点就记录一点
从今天开始练习使用Vim,从最开始开始。
查询: 可以在 Vi 模式下直接使用
:h ctrl-w查询<C-w>的用法。输出: :echo 指令。
Vim中的printf。 :echo "Hello,world!"持久化消息, 使用
:echom "Hello again,World!"指令,然后使用:messages。能够再次看到 echom打印 “Hello again,World!” 的指令基本映射
:map \ dd使用 ‘' 指令代表dd(删除行)缩写 可以快捷输入一些类内容
:iabbrev hu Copyright 2011 Steve Losh
- 插入模式映射设置
:inoremap jk <esc>在插入模式下按jk退出插入模式 J(大写) 讲两行拼接成一行- 多行注释
Ctrl+v, 选中行,I(大写I), #, ESC
fF移动光标到当前行的字母 例如fc移动到光标后面第一个 c 字母上。Fc移动到光标前第一个 c 字母。
使用;查找本行下一个符合的字符 例如;跳转到下一个 c 字母上。使用,向前查找。tT类似fF。差别是移动到字母前一个位置
\或者?查找 例如\error?error查找全文的error
按n向后查找匹配项 按N向前查找匹配项CTRL-O光标跳转到上一个查找对象处CTRL-I光标跳转到下一个查找处- 通过
:set ic来忽略大小写 通过:set noic来分辨大小写 如果仅在第一次搜索时忽略大小写 直接在 搜索内容后添加\c例如:\error\c - 设置搜索高亮
:set hls is注: 取消搜索高亮:nohlsearch
今天终于在xcode 9 上安装了 XVim 了!!!
sp或Ctrl+w s水平分割窗口vs或Ctrl+w v垂直分割窗口Ctrl+w q关闭当前窗口Ctrl+w o关闭除当前串口外的所有窗口Ctrl+w w遍历切换窗口
#匹配单词 寻找下一个相同的单词。di"删除 “ 之间的内容。
>G使当前行到文档末尾处增加一个缩进,可以使用.继续重复命令。s替换当前单词 ==cl。S==C删除整行 并重新输入。
:%s/\.o/\.c/g将 .o 替换为 .c。%表示所有行,g表示全部替换:s/aaa/bbb只替换第一行的第一个。1,12s/aaa/bbb/g替换1到12行所有的。dawdiw可以更快向前删除一个单词aw比iw多删除空格。dabdib删除小括号内中的内容.ab比ib多删除括号。等于da(di(,类似还有daBdiB等于da{di{删除大括号内容。ditdat删除匹配标签栏中的内容。如 title,输入dit会删除 title,删除掉标签中的内容。<C-a><C-x>把当前数字加一或减一。Tips: 如果是对 007 使用<C-a>将会得到结果为 010,是因为 vim 认为 007 是8进制,在 .vimrc 中设置set nrformats=会转为十进制。
- 蓝色代表插入模式下指令。
- Ctrl+w 删除一个单词。
- Ctrl+u 删除至行首。
yt,复制光标到 “,” 之间所有的内容。Ctrl+r0 在光标位置粘贴复制内容。yt 的意思是复制内容到专用寄存器中,所以 Ctrl+r0 表示取出第0个内容。- Ctrl+r= 使用运算功能。例如 计算 6 * 35:在插入模式输入
<C+r>=6*35。直接获得结果210。
- 绿色代表可视模式下指令。
gv重选上次高亮选区。- o 切换高亮选区活动端。
- u U 对选中单词进行小写/大写切换。
:[range] delete [x] 删除指定范围内的行[到寄存器 x 中]。"[x]p 粘贴寄存器 x 中的内容,例如粘贴寄存器 2 中的内容:"2p。:reg 查看寄存器内容。@: 重复上一条命令。:! 执行 Shell 中的程序,例如::!ls。
<C+o> 类似网页后退,后退到上一个打开的文本。对应的还有 <C+i> 前进。:jumps 打开历史文件列表。
m{a-zA-z} 把位置标记 {a-zA-Z} 设在当前光标位置 (不移动光标,这不是动作命令)。'{mark} 跳转到标记行首。 `` 跳转到上次光标位置。
``{mark}` 跳转到标记处。
qa (需要记录的指令) q 使用 q + 寄存器位置来记录宏操作,最后以 q 指令结尾。@a 执行寄存器(a)中指令。 :reg 查看寄存器中所有的内容。~ 大小写转换,并使光标跳转到下一个字符。
q/ 查看历史指令。
<C+]> 跳转光标到关键字的定义处。<C+n> 和 <C+p> 可以激活自动补全功能。<C+x> <C+l> 组合使用可以补全本行内容。:set spell 检查拼写错误。 通过 [s 和 ]s 命令在拼写错误间进行跳转。还可以通过 z= 命令获取建议列表。
ZZ 快速退出并保存。dfi 从光标处删除至i(包括i), dti 从光标处删除至i(不包括i)。
有的时候需要在单词左右添加引号括号之类的,需要在 .vimrc 中添加定义
1 | function! s:surround() |
这样在 nomal 模式下使用 cx + " 就能在单词左右添加引号。
+ 或者 Enter 移动光到下一行第一个非空白字符- 移动光标到上一行第一个非空白字符






