要使用哪个标记

时间:2015-09-11 16:26:51

标签: vim

我正在经历http://learnvimscriptthehardway.stevelosh.com/chapters/04.html 并且练习要求我在正常模式下使当前单词更新。

我做了:

nnoremap <c-u> mmgUaw`m<esc>

我正在使用标记(m标记)来阻止光标移动。

我不喜欢这个解决方案,因为应该是一个纯粹的功能性改变最终会改变vim的全局状态(通过设置标记)。

有更好的方法可以做到这一点,还是有一个标记(或一组标记)只能由命令/映射使用而不是交互式使用(因为命令/映射会改变它/它们)?

2 个答案:

答案 0 :(得分:2)

这是我提出的最好的:

nnoremap <c-u> i<esc>guiw`^

在插入模式下使用光标的最后位置。

答案 1 :(得分:1)

来自Vim帮助的example使用s注册本身,所以你的方法不一定是坏的(即如果映射只是供你自己使用那么你可以选择一个注册你不用于其他任何事情)。

话虽如此,特殊的反引号(`)寄存器在这里可能更好,因为它在缓冲区本地,并且无论如何都是为了存储最新的跳转点。