# vim `$ vimtutor` - Vim 是一種文字介面的文字編輯器,是 vi 的升級版 - 支援多種指令和快捷鍵 - 某些較精簡的發行版中不會預裝 Vim,需要另外安裝 https://learnbyexample.github.io/vim_reference/Introduction.html [用 vim script 打造專屬自己的快捷鍵](https://ithelp.ithome.com.tw/articles/10235968) ## 使用 Vim 編輯檔案 ### `vim` 指令 - 執行 `vim` 開啟編輯器 - 指令中沒有檔名,會建立一個新的檔案,在最後**存檔時會要求輸入檔案名稱** ``` vim ``` - 指令中有檔名 ``` vim my_file.txt ``` - 若檔案已存在會開啟該檔案 - 如果不存在會建立一個新檔案,且檔名為指令中指定的檔名 - 如果指令中的**路徑不是檔案而是目錄**,會進入互動式的選單且列出目錄中的所有檔案,可以用**上下鍵和 Enter 選擇要開啟的檔案** - 開啟目前的目錄 ``` vim ./ ``` - 會進入類似下面的畫面,會列出目錄中的所有檔案  - 用上下鍵可以選擇檔案 - Enter 開啟選擇的檔案 ### Vim 的不同模式 Vim 在使用時有多個不同的模式,每個模式下的主要功能和使用方式都不太相同 - **Normal Mode** - 預設的模式,開啟 vim 時會進入這個模式中 - 任何時候按下 <kbd>Esc</kbd> 進入此模式 - 從 normal mode 可以進入其他模式 - 只能使用 vim 的快捷鍵編輯檔案 - **Insert Mode** - Normal mode 時按 <kbd>i</kbd> 或是 <kbd>Insert</kbd> (<kbd>Ins</kbd>) 進入此模式 - 按 <kbd>a</kbd> 也可以進入 insert mode,游標的初始位置會和按 <kbd>i</kbd> 時不同 - 按 <kbd>o</kbd> 也可以進入 insert mode,會插入一個換行到檔案中 - 左下角會顯示 `-- INSERT --` - 操作時和一般文字編輯器相同,可以直接編輯檔案內容 - **Command-Line Mode** - Normal mode 時按 <kbd>:</kbd> 進入此模式 - 游標會跑到畫面的最下方,並且可以看到輸入的指令,透過指令進行操作 - **Visual Mode** - Normal mode 時按 <kbd>v</kbd> 進入此模式 - 左下角會顯示 `-- VISUAL --` - 可以用方向鍵選取文字 ## Normal Mode 操作 - 此模式下可以用**方向鍵控制游標** - 除了方向鍵,有四個字母也對應到上下左右,目的是讓手保持在鍵盤中間的位置,預設的設定如下 - <kbd>k</kbd> 對應上 - <kbd>j</kbd> 對應下 - <kbd>h</kbd> 對應左 - <kbd>i</kbd> 對應右 - <kbd>Back Space</kbd> 不會刪除文字,會像是左鍵一樣讓游標向左移動 - **沒辦法輸入文字**,只能透過**指令編輯檔案** ### 刪除文字 - <kbd>Del</kbd> 或 <kbd>x</kbd>: 刪除游標後的一個字元 - <kbd>dd</kbd>: 刪除游標所在的行 - <kbd>X</kbd>: 刪除游標前的一個字元 ### 複製文字 - <kbd>yy</kbd> 或 <kbd>Y</kbd>: 複製游標所在的行 ### 貼上文字 - <kbd>p</kbd>: 貼上文字 ### Undo / Redo - <kbd>u</kbd>: 返回上一步 (GUI 環境中的 <kbd>Ctrl + z</kbd>) - <kbd>Ctrl + r</kbd>: 取消上個 undo (GUI 環境中的 <kbd>Ctrl + y</kbd>) ### 切換模式 - <kbd>i</kbd>, <kbd>Ins</kbd>: 進入 insert mode - 游標會停留在目前的位置 - <kbd>a</kbd>: 進入 insert mode - 游標會切換到右邊一個字元的位置 - <kbd>o</kbd>: 進入 insert mode - 會新增一個空行到下一行,並些游標會切換到下一行 - <kbd>v</kbd>: 進入 visual mode - 可以用方向鍵選擇文字 - <kbd>:</kbd>: 進入 command line mode - 可以輸入指令進行編輯 ## Command-Line Mode - Normal mode 按 `:` 進入此模式 - 鍵盤的內容會出現在視窗最下方 ### 存檔 - `w`: 儲存檔案 ### 離開 - `q`: 一般離開,需要先存檔 - 通常用 `wq` 結合兩個指令使用 - `q!`: 強制離開 - 放棄修改的內容,直接離開 ## Vision Mode - 可以用方向鍵選擇文字
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up