我發現可以在插入模式下執行單個命令並使用Ctrl-O返回插入模式。在正常模式下插入一個字與插入模式下執行命令相比
在正常模式下插入單個詞的可能性如何?
當然,我可以切換到插入模式,寫入單詞,轉義並返回到正常模式。
但我想知道是否可以映射一個序列(例如Ctrl-K)允許不離開正常模式在光標位置快速添加一個單詞?
我試圖映射功能與提示(參見question 11567596 - 英戈Karkat的答案 - 和Wikia尖端1616),但沒有成功這個詞被附加在該行的結束......
我發現可以在插入模式下執行單個命令並使用Ctrl-O返回插入模式。在正常模式下插入一個字與插入模式下執行命令相比
在正常模式下插入單個詞的可能性如何?
當然,我可以切換到插入模式,寫入單詞,轉義並返回到正常模式。
但我想知道是否可以映射一個序列(例如Ctrl-K)允許不離開正常模式在光標位置快速添加一個單詞?
我試圖映射功能與提示(參見question 11567596 - 英戈Karkat的答案 - 和Wikia尖端1616),但沒有成功這個詞被附加在該行的結束......
這簡單功能的作品,這裏:
function! InsertWord()
let l:user_word = input("Type something then hit ENTER: ")
execute "normal i".l:user_word
endfunction
command! InsertWord call InsertWord()
nnoremap <C-k> :InsertWord<CR>
雖然,整個事情可能被縮短爲一行,但我喜歡這樣。
我最好的建議是接受插入模式;這是vi方式TM。
說真的,我也有創建映射的想法,允許我輸入一個單詞/句子/任何,然後自動返回到正常模式。但是......
無論您是使用input()
從romainl的答案,或更復雜的方法(例如用CursorMovedI
鉤),你必須按輸入或其他鍵表示即大功告成。這不比按Esc離開插入模式正常的方式!
你只是讓事情變得更加複雜:你花費寶貴的(短)鍵序列,你必須花費腦循環來決定兩種方法之間的決定,你的肌肉記憶必須學會輸入文本的方式,在其他vi模式下可用(例如在Bash中)。
所以,我認爲這是不值得的。
它完美的作品。非常感謝。 – ThG