2012-03-23 51 views
4

我在vim中使用了wrap,但是我希望vim的行爲好像行中有實際的中斷(而不是屏幕渲染的「軟中斷」)。包裝文本上的vim行操作(例如dd)

我已將j映射到gj,並將k映射到gk以進行導航。然而,行操作(例如dd)仍然作用於整個行,而不是「屏幕行」。是否有任何方法來改變這種行爲,使'dd'被限制在屏幕上?

+2

http://stackoverflow.com/questions/1585763/vim -delete顯示線-代替-的物理線 – rpeshkov 2012-03-23 08:54:48

回答

4

您可以創建一個鍵映射:

:nnoremap dd g0dg$ 
4

我寧願在操作符等待模式創建一個新的運營商,例如x

onoremap x :norm! g0vg$<cr> 
xnoremap x g$og0o 

有了第一個映射,dx將刪除一個屏幕線,yx會抽出一個屏幕線(當心,它不會被粘貼線條,但字符),cx將刪除屏幕線並開始插入模式,依此類推。

隨着第二個映射,x在視覺模式將擴展到屏幕線的視覺選擇。

我不會建議重新映射DD,因爲這可能會打破插件(如果他們使用:normal,而不是:normal!或者,如果他們使用:×××map而不是:×××noremap