2012-12-27 186 views
21

vim中的一些命令是首先輸入冒號(:)來給出的,例如。 :wq保存文件並退出。儘管一些命令不需要冒號,例如替換命令(R)。我想知道這兩種方法有什麼區別?有什麼具體規則哪些需要冒號,哪些不冒號?爲什麼vim中的某些命令需要冒號而有些不需要?

+0

更經常使用的命令會變成「正常」命令,您不需要冒號。因爲只有很多字符可以用作普通命令,所以其餘的命令都會被寫入:命令 – yosukesabai

+1

@yosukesabai:雖然這聽起來合乎邏輯,但這是對[vi history]的修正主義解釋(http://en.wikipedia。組織/維基/ VI)。 –

回答

28

你必須看看Vim的前身history of vi的解釋。很久以前,當用鍵盤和連接的打印機(稱爲終端)進行文本編輯時,沒有鼠標,除了紙張之外沒有顯示,因此幾乎沒有交互性。編輯由一個名爲ex的編輯器組成,由短暫的助記命令組成。您發佈了一條命令來處理一行或多行(例如:substitute/foo/bar),並且編輯服從。如果你不確定命令的效果,你可以使用:print

時間過去了,視頻終端出現了,vi編輯器併入ex命令(因爲他們是有用的,程序員使用它們),但引入了更多交互式命令喜歡刪除(x),插入(i) , 等等。 ex命令仍以命令行模式提供,該命令以:開頭,並以結束輸入

Vi和Vim的是在這方面特別的,因爲他們有這些不同模式其中相同的密鑰意味着取決於哪種模式一個是不同的東西。要成爲Vim的精通,你必須瞭解不同的模式,以及如何最好地使用它們來實現編輯目標。

:help vim-modes爲您提供出色的綜合性幫助設施的起點。

+0

在某些'.vimrc'文件中,我看到':map'和'map'同時出現。他們兩人工作沒有錯誤。哪個被認爲是正確的? – nn0p

+1

@ nn0p:'.vimrc'中的前導':'是可選的。兩者都是對的,但省略它的簡短形式更爲常見。 –

+0

謝謝你指出。有沒有這方面的參考?我搜索了網頁,但沒有找到任何解釋。 – nn0p

9

您處於vim的不同模式。 vim有6種基本模式。他們是

  1. Normal mode
  2. Visual mode
  3. Select mode
  4. Insert mode
  5. cmdLine mode
  6. Ex mode

Normal模式你不不需要鍵入:,可以通過按Esc鍵來達到此模式。

+0

* cmdLine模式*和* Ex模式*之間有什麼區別?按下':'鍵進入這兩種模式。 – nn0p

+0

它使用相同的命令,但有一些區別,在':help ex-mode'中進行了解釋。值得注意的是,它有**沒有正常的命令行編輯**,每個命令後屏幕不會更新。 – seaturtle

11

「不需要」冒號的命令稱爲「正常(模式)命令」。

「需要」冒號的命令稱爲「Ex命令」。

Vim的,是一個模式編輯器,有是上下文給你所處的模式許多命令。最明顯的影響是,打擊在不同環境下同一鍵可能會產生不同的結果。

插入模式下,鍵盤上的大多數鍵都用於實際輸入字符到文檔中。

你,你做切換到正常模式猛拉,放,刪除,移動你的鼠標... 正常模式是激光聚焦編輯Vim的是著名的和使用的命令一樣dcggsi/.*等。

您通過點擊:正常/* *可視化模式下輸入命令行模式。它通常用於兩件事情:

  • 執行管理任務(寫入磁盤,交換緩衝區,打開文件...)像:m10:t1:g/foo/d
  • 使用酷編輯命令...

的你可以在這個模式下使用的許多命令都是Vim過去的(非常強大的)殘餘部分,被稱爲Ex命令。

簡而言之,既沒有正常模式命令也沒有Ex命令以冒號開頭。冒號只是用來改變模式。

相關問題