2014-09-22 28 views
1

我在.vimrc以下別名:Vimscript中跳``相對時,位置改變

inoremap ^Z ^[[s1z=``a 

這讓我在插入模式按^ZC-z)跳回到最後一個拼寫錯誤的單詞並糾正它到第一個建議,然後跳回光標先前的位置並重新進入插入模式。

但是,當單詞的長度由於更正而改變時,這不起作用。例如,使用[]代表光標,在

A grea idea[] 

的情況下按下C-z將導致

A great ide[a] 

,但我希望它導致

A great idea[] 

我怎樣才能得到這種相對跳躍?

回答

2

在這裏找到一個較舊的鏈接在計算器上,不知道是否有同樣的問題,否則,我會接受它:How to correct vim spelling mistakes quicker?

<Esc>[s1z=`]a 

[S移動到最後一個拼寫錯誤 1Z =選擇第一個建議 `]移動到最後一個插入點 一個附加文本

它也有兩個更廣泛的解決方案,也可以工作。

0

不幸的是,標記不適用於其行中的文本更改,僅適用於上面添加/刪除的行。但是,您可以通過使用gi命令在最後編輯的位置重新輸入插入模式來避免此問題。

inoremap <C-z> <Esc>[s1z=gi