2013-02-16 108 views
1

對不起,如果這不完全是一個編程問題。一些簡單的vim命令

我主要使用Vim編輯我的程序。所以我向所有Vim專家提出的問題是:

  1. 有沒有辦法在Vim中選擇和滾動?我想複製一堆代碼,並且在傳遞過程中,我總是複製所有可以在vim屏幕上查看的東西,然後將其粘貼到任何地方,然後向下滾動,然後複製並粘貼..重複..完成。有沒有一種方法可以有效地複製大塊代碼?

  2. 格式化代碼行 - 你知道當你有時候複製和粘貼一些代碼時,10行代碼變成了30個非常混亂的代碼行嗎?那麼,是否有命令重新格式化代碼?在通行證中,我手動返回並正確縮進有時超過500行的所有內容。我在其他網站上看到一些關於命令被1G = G可以有人確認嗎?當我在我的命令行嘗試它時,出現錯誤E464: ambiguous use of user-command line,我不知道這意味着什麼。

我不知道有是Vim help命令,但我不知道在哪裏時,有像200 txt文件甚至開始坦白地說,這是快:)

回答

1

這整個的答案是隻有當您可以使用寄存器+作爲剪貼板時纔有用。在VIM嘗試"+yy,嘗試將它粘貼到另一個應用程序,看看您是否可以使用剪貼板,如果可以的話:

你真的應該閱讀手冊和其他幫助:
要拷貝線(簡單):http://vim.wikia.com/wiki/Moving_lines_up_or_down
要尋址的行:Addressing in VIM
這就是開始。

的你可以做什麼的一些例子:
:.,+50y a猛拉從目前的50線和50提前註冊一個,使用A,而不是將追加到寄存器A.從目前的以匹配第一線
:.,/some pattern/y A抽出(追加) /某種模式/註冊一個。
"Ay/some pattern<CR>將做同樣的事情。一旦你瞭解了你應該如何處理,很容易將命令與尋址結合起來,例如,在「縮進命令」 =
=}自動縮進到當前段落的結尾
=/some pattern<CR>自動縮進到線匹配/一些模式/
在可視模式馬克的東西,然後鍵入=它會自動縮進選定的文本。

等等...所以閱讀手冊,你將會很好地使用它。
在上面的示例中,您可以使用寄存器+「剪貼」到剪貼板而不是寄存器a

1

對於沒有它retabbing文本Vim粘貼,儘量

:set paste 

粘貼之前。使用:set nopaste將其關閉。

此外,請確保您粘貼在insert mode

如果您正在尋找先進的VIM命令,那麼我的blog post可能會有所幫助。

+1

定義'set pastetoggle = ',然後切換粘貼模式與''是非常有用的(或任何關鍵)。你可以切換到所有模式。 – 244an 2013-02-16 01:32:29

3

你的問題是關於vi/Vim的基本使用。幫你一個忙,並通過一個Vim教程;你會在網上找到很多,而Vim自帶的介紹,vimtutor

在Unix中,如果Vim安裝正確,您可以從shell啓動:

VIMTUTOR

在MS-Windows,你可以找到它在程序/ Vim的菜單。或者在$ VIMRUNTIME目錄中執行 vimtutor.bat。

另外,學習如何查找命令並導航內置的:help;它是全面的,並提供許多技巧。你不會像其他編輯一樣學習Vim,但如果你承諾不斷學習,它將證明它是一個非常強大和高效的編輯器。

2

Vim的方式是使用鼠標超過一屏完全忘記選擇,但是設置一個標記,移動到所需文本的另一端,然後抽出來標記:

  1. 集標記米在文本的開頭與mm
  2. 移動到文本
  3. 的端
  4. 揚克來標記與y'm
  5. 粘貼與Pp