簡體   English   中英

從vimscript光標后插入文本塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM