如果我從Vim內部運行shell命令,比如說:!ls
,那麼在我退出Vim之後,它的輸出在shell中仍然可見。如何從Vim緩衝區寫入控制檯?
我想以類似的方式將選中的行從Vim中的當前緩衝區寫入到shell中。也就是說,在我退出Vim後,這些行應該在控制檯中可見。這個怎麼做?
要寫出線4-10例如,該命令沒有做到這一點::4,10w !tee
如果我從Vim內部運行shell命令,比如說:!ls
,那麼在我退出Vim之後,它的輸出在shell中仍然可見。如何從Vim緩衝區寫入控制檯?
我想以類似的方式將選中的行從Vim中的當前緩衝區寫入到shell中。也就是說,在我退出Vim後,這些行應該在控制檯中可見。這個怎麼做?
要寫出線4-10例如,該命令沒有做到這一點::4,10w !tee
什麼簡單貓婷文件
:!cat %
(如oposed到:%!cat
這將只打印以緩衝)
只打印已選擇行:
:execute '!sed -n ' . line("'<") . ',' . line("'>") . 'p %'
您可以爲
command! -range PrintSelected :execute '!sed -n ' . line("'<") . ',' . line("'>") . 'p %'
這個工程!如果我只想從緩衝區寫入一些選定的行(比如第4行到第10行),該怎麼辦?也許我想在視覺上標記這些線條,然後寫出這些? –
要建立在@ pacholik的答案定義一個命令(並回答評論您的擴展問題),以僅列出可視選擇(或其他任何您可以使用sed
:
:execute printf('!sed -n %d,%dp %%', line("'<"), line("'>"))
爲什麼不使用':!cat%'? – dlmeetei
@dlmeetei如果我只想從緩衝區寫入一些選定的行(比如第4行到第10行),該怎麼辦?也許我想在視覺上標記這些線條,然後寫出這些? –
太好了,現在你已經更新了相應的問題。 – dlmeetei