2017-07-18 31 views
3

是否可以將選定文本的行號傳遞給外部命令?如何獲取vim中選定文本的行號

背景:我想將pyfmt整合到vim中。理想情況下,我希望能夠選擇一些文本並輸入一些快捷方式,讓選定的文本重新格式化爲pyfmt

到目前爲止,我發現運行!pyfmt -i %將格式化整個文件。 pyfmt也支持--lines START-END選項。我希望能夠將選定文本的開頭和結尾的行號傳遞給pyfmt,以便只有我想要重新格式化的內容才能重新格式化。這可能嗎?

+2

如果您有選擇,您可以使用'line(''<「)'來獲得最後一個選擇的開始,'line(''」)'來獲得最後的選擇 –

+0

'pyfmt'可以用作過濾器? – romainl

回答

2

選擇要格式化的行(最好是linewise,使用大寫字母V進入可視模式),然後在不離開可視模式的情況下輸入:!pyfmt -i

這不會給你行號。相反,它會通過命令過濾選定的行並將其替換爲輸出。

相關問題