[英]Insert chunk of text after cursor from vimscript
我認為這會更容易,但我還沒有成功。 我想運行一個函數,導致在光標后插入一個特定的文本塊(這是我經常插入的一些文本)。
完成后,我會將擊鍵映射到此類功能。 我不能使用append(),因為我不想創建一個新行,只是在光標后附加一些文本,就像'A'命令一樣。
你可以使用
exe "normal! a".functionresult."\<esc>"
或者不使用append()
,您可以請求當前行,在光標位置更改它,然后替換它。
let line = getline('.')
let pos = col('.')-1 " IIRC
let line = line[:pos-1] . functionresult. line[pos:]
call setline('.', line)
我可能錯誤的是列偏移(我已經檢查了代碼的行為),但這是個主意。
請注意,根據觸發插入的方式,只有表達式映射可能更簡單
inoremap <silent> <expr> YOURTRIGGER <sid>the_function()
您可以使用映射:
:nnoremap <F2> axxx<Esc>
也就是說,在F2上運行命令a
,追加文本“xxx”,模擬按Esc退出追加模式。
PS。 命令A
不會在光標后追加,它會附加在該行的末尾。 命令a
會在光標后追加。
您也可以使用縮寫:
:iabbrev tx some long text
每次插入“tx”並按空格鍵時,“tx”將被文本替換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.