vim-2-使用进阶

查看帮助

输入 : tab help, 可在新的标签页打开帮助.
跳转到一个主题:  将光标置于标签 (例如 |bars|) 上然后输入 CTRL-]
跳回:  键入 CTRL-T 或 CTRL-O (重复则继续向后)

文本对象

之前的复制和删除都是以字符, 行为单位, w, e的作用是从光标处到下个单词开头或本单词结尾, 所以要想删除整个单词, 还得先将光标移动到单词开头, 这很麻烦,
可以使用文本对象解决这个问题:
    aw: a word, 表示一个单词, 及其后面的空白, daw表示删除光标所在单词及空白
    iw: inner word, 也是表示一个单词, 但是不包括单词后面的空白
    as: a sentence, 表示一个句子, 及其后面的空白, das表示删除光标所在句子及空白
    is: inner sentence, 也是表示一个句子, 但是不包括句子后面的空白

按q键开始录制宏, 一般跟上寄存器的名字, 寄存器可使用26个英文字母, 如qm, 表示将宏录制到m寄存器中, 然后进行一系列操作, 都会被记录下来, 再次按q, 退出宏录制,
按@m表示播放m寄存器中的宏, 前面可以加数字表示播放次数, 当然也可以使用 . ,重复播放
按@@表示播放之前播放过那个个宏,

剪切板

y, d, c, x等等命令都是将内容存进了vim的剪切板, 如何和系统的剪切板交互? 在这些命令之前加 "* , 即可

vimdiff

vimdiff a.java b.java
改动了文件后, vim并不会(不一定)实时比较, 需要使用:diffupdate命令来重新比较

小技巧

使用可视模式选中文本, 然后gq, 可以格式化文本. (比如vimrc里设置了 set textwidth=100)
 
查找空行: /^  这个方法只能找到开头没有空格的空行...





原文地址:https://www.cnblogs.com/gaoxiaoyuan/p/3831760.html