正如我們所知,你不能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。但是,我怎樣才能確定光標的位置是否在行尾(在腳本中)。 –