如何设置vim地图不改变jumplist?
how to set vim map not change jumplist?
[first line]
int test() {
a
b
c
d
{
e
f
g
}
}
- 光标当前符合
f
。
- 如果我按
[[
,光标会转到[first line]
。
- 我想要光标转到
int test() {
。所以我设置了一个映射:nnoremap [[ ][%
.
- 地图命令运行良好,但有一个问题:如果我按
CTRL+O
,光标将转到最后一行 }
。
- 我想要的是光标回到
f
行。
我试过nnoremap [[ :keepjumps normal ][%<CR>
,但还是不行。
我该如何实施?
- 按
[[
使光标转到 int test(){
行。
- 按
CTRL+O
使光标向后跳转。
我的 vim 版本是 Vi IMproved 7.4
跳转列表的工作方式经常被误解。存储在跳转列表中的跳转仅记录您进行的“跳转”的起点,而不是其目的地。这意味着 :help :keepjumps
应该用于防止将新的 origin 添加到跳转列表中。
为了 <C-o>
跳回到原点 f
,原点必须出现在跳转列表中,所以只有原点 }
必须被忽略。
正在做:
nnoremap [[ :keepjumps normal ][%<CR>
你有效地阻止了两个原点f
和原点}
被添加到跳转列表。
您可以通过将 ][
移出 :keepjumps
命令来修复映射:
nnoremap [[ ][:keepjumps normal %<CR>
[first line]
int test() {
a
b
c
d
{
e
f
g
}
}
- 光标当前符合
f
。 - 如果我按
[[
,光标会转到[first line]
。 - 我想要光标转到
int test() {
。所以我设置了一个映射:nnoremap [[ ][%
. - 地图命令运行良好,但有一个问题:如果我按
CTRL+O
,光标将转到最后一行}
。 - 我想要的是光标回到
f
行。
我试过nnoremap [[ :keepjumps normal ][%<CR>
,但还是不行。
我该如何实施?
- 按
[[
使光标转到int test(){
行。 - 按
CTRL+O
使光标向后跳转。
我的 vim 版本是 Vi IMproved 7.4
跳转列表的工作方式经常被误解。存储在跳转列表中的跳转仅记录您进行的“跳转”的起点,而不是其目的地。这意味着 :help :keepjumps
应该用于防止将新的 origin 添加到跳转列表中。
为了 <C-o>
跳回到原点 f
,原点必须出现在跳转列表中,所以只有原点 }
必须被忽略。
正在做:
nnoremap [[ :keepjumps normal ][%<CR>
你有效地阻止了两个原点f
和原点}
被添加到跳转列表。
您可以通过将 ][
移出 :keepjumps
命令来修复映射:
nnoremap [[ ][:keepjumps normal %<CR>