2014-03-06 65 views
2

我EC2服務器附帶紅帽VIM:視覺塊插入

[[email protected]****** ~]$ vim --version 
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 7 2012 08:03:48) 
Included patches: 1-411 
Modified by <[email protected]> 
Compiled by <[email protected]> 

我讀過wikia doc和很多職位,如:

所有的指南告訴我做Ctrl+V,選擇區域,然後Shift+i,鍵入要插入的字符,然後ESC。這對我不起作用。

但是我可以做:s/^/\,這會在每行的前面插入一個空格,但是我該如何將它插入到中間的某個地方?

例如,我想插入幾個空間打開

hello world 
a cute cat 
milky way 

hello  world 
a cut  e cat 
milky  way 

在一個視覺塊操作

+1

您究竟在尋找什麼?可能是您的輸入樣本,預期輸出將有所幫助。 – Amit

+1

你得到了什麼?請注意,在完成並鍵入ESC之前,僅在活動行上看到更改是正常的。如果你設置了showmode,那麼vim應該在CTRL-V之後確認你實際上處於Visual Block模式。 – benjifisher

+0

請注意,安裝了Ubuntu 14.04(安裝爲vi)的默認vim不包含visualextra功能,因此塊插入在此不起作用。 sudo apt-get install vim引入了一個功能更全的版本,其中激活了visualextra。這也可能是RedHat的一個問題。您可以檢查vim --version的輸出以查看激活功能的完整列表。 –

回答

4

解決方案更新您的que Stion的:

  1. 在第一線
  2. CTRL + V 「你好」 & 「世界」 之間的圍棋進入可視塊模式。
  3. 再往使用2j選擇該列
  4. #An大寫I
  5. 按4位,以獲得所需的輸出。
  6. 按下Esc鍵

這裏有一個小的演示:

demo gif

+0

請注意,安裝Ubuntu 14.04(安裝爲'vi')的默認vim不包含'visualextra'功能,因此塊插入將無法在此工作。 'sudo apt-get install vim'引入了一個功能更全的版本,其中'visualextra'被激活。這也可能是RedHat的一個問題。您可以檢查'vim --version'的輸出以查看激活功能的完整列表。 –

0

嘗試:10,20s/^/ /,只爲線插入空間-10- 20

1

視覺塊插入是什麼你想用Shift+i做。它是按塊運算符時Vim是沒有+ visualextra功能編譯

:h blockwise-operators 

按段運營商不可用。

要檢查是否有此功能

:version 

如果你沒有,那麼你可能需要使用在其他答案建議的方法,或讓VIM的另一個版本。

+0

也許多一行「vim --version」輸出就足夠了:如果它說「Tiny version」,那麼它缺少了我們期望的很多功能。 – benjifisher

1

如果你正在尋找一個正則表達式的風格答案嘗試(相符什麼視覺的塊模式下會做):

:%s;\v^(.{5})(.*);\1 \2;g 

以符合您的預期輸出:

:%s;\v^(.{5})\s*(.*);\1 \2;g 

如果你需要這個僅在第1行至第3行完成:

:1,3s;\v^(.{5})(.*);\1 \2;g