1. 程式人生 > >Vim 文本編輯器的基本使用

Vim 文本編輯器的基本使用

英文 根據 display google 回車 交換 expand 當前 rtt

Vim文本編輯器是Linux/Unix系統下最常用的工具之一,通過該工具可以很方便的建立、修改、編輯文檔或者程序文件,其作用類似與windows系統下的記事本或者notepad++,因此熟練掌握該工具的使用對於使用linux系統是非常有必要的。通過本文記錄Vim編輯器的基本使用方法,用以強化記憶或者以備以後復習。cat與<<EOF結合也可以實現編輯器的部分功能,可以生成和編輯文檔:cat >log.txt <<EOF)

主要參考資料有:

1.《鳥哥的Linux私房菜》

2.《Linux就該這麽學》

3.速成Vim https://learnxinyminutes.com/docs/zh-cn/vim-cn/

4.菜鳥教程 http://www.runoob.com/linux/linux-vim.html

5.其他互聯網資料,google,baidu等搜索引擎

一、Vim 編輯器的三種模式


基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode)輸入模式(Insert mode)底線命令模式(Last line mode) (1)命令模式:
用戶剛剛啟動 vi/vim,便進入了命令模式。
此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下 i,並不會輸入一個字符,i 被當作了一個命令。
以下是常用的幾個命令:
  • i 切換到輸入模式,以輸入字符。
  • x 刪除當前光標所在處的字符。
  • : 切換到底線命令模式,以在最底一行輸入命令。
  • u 撤銷
  • ctrl+r 回復撤銷
若想要編輯文本:啟動Vim,進入了命令模式,按下 i,切換到輸入模式。
命令模式只有一些最基本的命令,因此仍要依靠底線命令模式輸入更多命令。 (2)輸入模式:
在命令模式下按下i就進入了輸入模式。
在輸入模式中,可以使用以下按鍵:
  • 字符按鍵以及Shift組合,輸入字符
  • ENTER,回車鍵,換行
  • BACK SPACE,退格鍵,刪除光標前一個字符
  • DEL,刪除鍵,刪除光標後一個字符
  • 方向鍵,在文本中移動光標
  • HOME/END,移動光標到行首/行尾
  • Page Up/Page Down,上/下翻頁
  • Insert,切換光標為輸入/替換模式,光標將變成豎線/下劃線
  • ESC,退出輸入模式,切換到命令模式
(3)底線命令模式:
在命令模式下按下:(英文冒號)就進入了底線命令模式。
底線命令模式可以輸入單個或多個字符的命令,可用的命令非常多。
在底線命令模式中,基本的命令有(已經省略了冒號):
  • q 退出程序
  • q!強制退出
  • w 保存文件
  • wq filename:保存為指定文件名並退出

按ESC鍵可隨時退出底線命令模式。
簡單的說,我們可以將這三個模式想成底下的圖標來表示:

技術分享圖片

二、Vim的基本命令操作


Vim 導航基礎

    vim <filename>   # 在 Vim 中打開 <filename>
    :q               # 退出 Vim
    :w               # 保存當前文件
    :wq              # 保存文件並退出 Vim 
    :q!              # 退出 Vim 並且不保存文件
                     # ! *強制* 執行 :q, 因此沒有保存就退出 Vim
    :x               # 保存文件並且退出 Vim, 是 :wq 的簡寫版本

    u                # 撤銷
    CTRL+R           # 重做

    h                # 左移一個字符
    j                # 下移一行
    k                # 上移一行
    l                # 右移一個字符

    # 在行內移動

    0                # 移到行首
    $                # 移到行尾
    ^                # 移到行內的第一個非空白字符處

    # 在文本中查找

    /word            # 光標之後的所有該詞都高亮顯示
    ?word            # 光標之前的所有該詞都高亮顯示
    n                # 查找後將光標移到該詞的下一個出現位置
    N                # 光標移到該詞的上一個出現位置

    :%s/foo/bar/g    # 將文件每一行上的所有 foo 都改成 bar
    :s/foo/bar/g     # 將當前行上的所有 foo 都改成 bar

    # 跳到字符處

    f<字符>         # 向前跳移到 <字符> 上
    t<字符>         # 向前跳移到 <字符> 的左側

    # 例如,    
    f<               # 向前跳移到 < 上
    t<               # 向前跳移到 < 的左側

    # 按詞移動
    # 默認一個單詞由字母,數字和下劃線組成

    w                # 移動到下一個詞首
    b                # 移動到前一個詞首
    e                # 移動到下一個詞尾


    # 移動的其它命令

    gg               # 移到文件頂部
    G                # 移到文件末尾
    :NUM             # 移到第 NUM 行 (NUM 是任意數字)
    H                # 移到屏幕頂部
    M                # 移到屏幕中間位置
    L                # 移到屏幕末尾

模式:

Vim 基於 模式 這個概念。

命令模式 - Vim 啟動後就處於這個模式,用於導航和操作命令 插入模式 - 用於在你的文件中進行修改 可視模式 - 用於高亮文本並對它們進行操作 Ex 模式 - 用於跳到底部的 ‘:’ 提示行上輸入命令

    i                # 在光標位置前,將 Vim 切換到插入模式
    a                # 在光標位置後,將 Vim 切換到插入模式
    v                # 將 Vim 切換到可視模式
    :                # 將 Vim 切換到 ex 模式
    <esc>            # 無論你當前處於什麽模式,都返回到命令模式

    # 復制和粘貼文本

    y                # 復制所選的內容
    yy               # 復制當前行
    d                # 刪除所選的內容
    dd               # 刪除當前行
    p                # 在當前光標位置後粘貼復制的文本
    P                # 在當前光標位置前粘貼復制的文本
    x                # 刪除當前光標位置處的字符

Vim 的 ‘語法’

Vim 可以被認為是按 ‘動詞-修飾詞-名詞’ 格式編排的一組命令:

動詞 - 你的動作 修飾詞 - 你如何執行你的動作 名詞 - 你的動作所作用於的對象

關於 ‘動詞‘,‘修飾詞‘,和 ‘名詞’ 的幾個重要例子:

    # 動詞

    d                # 刪除
    c                # 修改
    y                # 復制
    v                # 可視化選擇

    # 修飾詞

    i                # 內部的
    a                # 周圍的
    NUM              # 數字 (NUM 是任意數字)
    f                # 查找文本並位於其上
    t                # 查找文本並停於其前面
    /                # 從光標處開始查找字符串
    ?                # 在光標前查找字符串

    # 名詞

    w                # 詞
    s                # 句子
    p                # 段落
    b                # 塊

    # 示例 語句 或命令

    d2w              # 刪除 2 個詞
    cis              # 修改段落內的內容
    yip              # 復制段落內的內容 (復制你所在的段落)
    ct<              # 修改直到括號開啟處
                     # 對你的當前位置直到下個括號開啟處的內容進行修改
    d$               # 刪除直到行尾

一些快捷鍵和技巧

    <!--TODO: Add more!-->

    >                # 將所選內容縮進一級
    <                # 將所選內容取消縮進一級
    :earlier 15m     # 將文檔還原到 15 分鐘前的狀態
    :later 15m       # 逆轉上述命令
    ddp              # 相鄰行交換位置,先 dd 再 p
    .                # 重復之前動作

宏基本上來說就是可錄制的動作。 當你開始錄制宏時,它會記錄你使用的 每個 動作和命令, 直到你停止錄制。當調用宏時,它會將這個完全相同的動作和命令序列 再次應用於所選文本之上。

    qa               # 開始錄制一個叫 a 的宏
    q                # 停止錄制
    @a               # 重播宏

配置 ~/.vimrc

.vimrc 可用於在啟動時對 Vim 進行配置。

這裏是一個示例 ~/.vimrc 文件:

" 示例 ~/.vimrc
" 2015.10 

" 需要 Vim iMproved 版本
set nocompatible

" 根據文件名檢測文件類型,以便能進行智能自動縮進等操作。
filetype indent plugin on

" 開啟語法高亮
syntax on

" 更好的命令行補全
set wildmenu

" 除了當使用大寫字母時使用大小寫無關查找
set ignorecase
set smartcase

" 當新開一行時,如果沒有開啟文件特定的縮進規則,
" 則縮進保持與你當前行一致
set autoindent

" 在左側顯示行號
set number

" 縮進選項,根據個人偏好進行修改

" 每個 TAB 的可視空格數
set tabstop=4

" 編輯時 TAB 對應的空格數
set softtabstop=4

" 當使用縮進操作 (>> 和 <<) 時縮進的空格數
set shiftwidth=4

" 將 TAB 轉換成空格
set expandtab

" 為縮進和對齊開啟智能化的 TAB 和空格切換功能
set smarttab

2018-04-27 22:36:47 於南京仙林亞東城

Vim 文本編輯器的基本使用