正如我们所知,你不能Vim的:与冒号命令“一”在正常模式下
:exec "normal [iIaAs]"
的唯一途径进入插入模式,我知道从冒号命令进入插入模式是
:startinsert[!]
虽然:startinsert表现得像'我'和:startinsert!像一个'。但我怎样才能得到'一个'? 您不能使用
:exec "normal l"
:startinsert
因为它在行结束时不起作用。
正如我们所知,你不能Vim的:与冒号命令“一”在正常模式下
:exec "normal [iIaAs]"
的唯一途径进入插入模式,我知道从冒号命令进入插入模式是
:startinsert[!]
虽然:startinsert表现得像'我'和:startinsert!像一个'。但我怎样才能得到'一个'? 您不能使用
:exec "normal l"
:startinsert
因为它在行结束时不起作用。
这个片断:
function! Append()
startinsert
normal! l
endfunction
nmap <F6> :call Append()<CR>
使得<F6>
工作像a
。
外部的脚本,你必须做到:
:startinsert
<C-o>
:normal l
注意execute
是必要的前提是你做,你要执行的命令的一些插值或级联。
execute "normal a"
是没有意义的,但
execute "normal a" . my_variable
是正确的。
确实feedkeys
函数的帮助?
例如
:call feedkeys('a','n')
现在我用'imap
@RealYang为什么你需要,如果你已经在插入模式?你可以按'right'或'C-o l' – Kent
嗯,我正在编写一个脚本来自动完成括号,我想要一个快速的方法来跳过右括号。如果“)”在行尾,则“C-O l”不起作用。此外,我认为'C-O l'和'right'很慢。 –
我试过'startinsert和正常! l',但插入位置不能到达行尾。我徘徊,如果有一些修复? –
你应该解释你想做什么(一个脚本?批量编辑命令?别的?):一个简单的':startinsert!'显然可以解决你的“行尾”问题。 – romainl
请让我的新vimscript。但是,我怎样才能确定光标的位置是否在行尾(在脚本中)。 –