进阶(jumplist)
不推荐这个功能,感觉价值很低!stackflow上推荐当希望回到上一个位置用bookmark就好。
因为只有下面的command才会记录jump。或者某行发生了change。
Ctrl-o 或Ctrl-l | 根据jumplist ,跳到older或newer (很少用) |
进阶操作(bookmark,特殊的jump。低度常用)
Using this feature we can make navigation within file really faster. 普通模式(即命令模式)输入。我在Win10的Vim8.2上验证,bookmark只支持1个字符,任何可见字符,比如a-Z,特殊符号逗号,句号等。
| create bookmark. 比如ma 创建了一个叫a的bookmark。又或者m1,则创建名字是1的bookmark。(常用) |
`{bookmark-name} | 比如 `1 就会自动跳到名字是1的bookmark处 (常用) |
‘{bookmark-name} | 跳到名字是1的bookmark那行的开头 |
| 列出所有bookmarks (常用) |
| 删除bookmark (常用) |
m{BOOKMARK-NAME} | global bookmark,使用的名字是大写字母,就能跨文件跳转 |
保存创建的bookmark | 根据stackoverflow和使用命令vimgrep File marks,看到确实默认保存bookmark,实验也通过。但通过:set vi,看到默认保存100个文件的a-z,0-9 bookmarks |
% |
|
进阶(无插件Vim配置文件vimrc推荐)
(应用)如果寄存器中的字符串存在 <Esc>
字符或 <CR>
字符,则会时 Vim 回到 normal 模式, 并继续执行寄存器中的命令。为了防范 剪切板劫持,可以添加下列的 Vim 配置:
inoremap <C-r>+ <C-g>u<C-\><C-o>"+gP
进阶(Marco): 有哪些场合必须用marco?
function其实可以提供更灵活的方式,但有学习curve。只是当场景简单时,用marco更容易被初学者接受。
q{一个字母作为宏名} | 普通模式q开始与停止录制宏 |
N@{宏名} | 执行录制的宏,N代表执行次数,可以没有。
|
| Jumping to a tag |
| Returning after a tag jump |
| How do I list the contents of the tag stack? |
| preview a tag |
| browse through the tag list in a preview window |
| highlight all the tags in the current file |