小白學習Vi/Vim編輯器安裝及使用總結


Table of Contents

1.vi/vim是什么?  2.vim模式有哪些?如何切換?   3.使用vim如何打開文件?  4.關閉文件   5.移動光標     6.翻屏:   7.刪除  8.粘貼命令: p   9.復制命令:y   10.修改c:先刪除內容,在轉換為輸入模式    11.替換:r    12.撤銷編輯操作:u(undo) 13.重復前一次編輯操作.     14.可視化模式:   15.查找:   16.查找並替換       17.vim打開多個文件      18.分屏顯示一個文件     19.分窗口編輯多個文件     20.將當前文件中部分內容保存為另外一個文件    21.將另一個文件的內容填充在當前文件中(r表示讀)     22.跟shell交互(vim 末行模式執行shell)   23.高級話題      24.vim配置文件


使用Linux系統肯定不是沖着UI去的。肯定得使用終端命令行模式,但是怎么使用Terminal編輯文本呢?可以使用vi,現在大多數使用Vim,Vi之於Linux/Unix就像記事本之於Windows一樣(這句話也不是很嚴謹),就像爭論哪個編程語言是世界上最好的一樣,有人認為Vim is the best text editor known to human kind,參考另一篇英文vim教程,寫的不錯《Learn Vim Progressively》。

Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。

簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。 vim 則可以說是程序開發者的一項很好用的工具。連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程序開發工具而不是文字處理軟件。

1、使用Ctrl+Alt+T快捷鍵進入Terminal之后,在命令行中輸入vim,如果未安裝會得到下面的提示:

Command 'vim' not found, but can be installed with:

sudo apt install vim       
sudo apt install vim-gtk3  
sudo apt install vim-tiny  
sudo apt install vim-athena
sudo apt install vim-gtk   
sudo apt install vim-nox   
sudo apt install neovim   

意思就是vim命令無法識別,但是可以安裝vim或vim-gtk3等編輯器來使用vim。

到這里就有疑惑了,除了vim了解一點外,其他的都是什么鬼,和vim有啥關系?

這里以neovim為例說一下:

NeoVim 項目地址: GitHub - neovim/neovim

Vim 原項目地址: GitHub - vim/vim

巴西程序員 Thiago de Arruda Padilha(aka tarruda)向 Vim開源編輯器項目遞交了兩大補丁,對Vim的架構進行了大幅調整,結果遭到了Vim作者Bram Moolenaar的拒絕,因為對於Vim這樣一個成熟的項目進行如此大的改變風險太高。於是tarruda發起了Vim fork項目Neovim,集資1萬美元打造出21世紀的編輯器,提供更好的腳本、插件支持,整合現代的圖形界面。

Bram Moolenaar 在寫 Vim 時還是 90 年代初,至今已經 20 多年 過去了。其中,不僅包含了大量的遺留代碼,而且程序的維護、Bug 的 修復、以及新特性的添加都變得越來越困難。為了解決這些問題,Neovim 項目應運而生。Neo 即“新”之意,它是 Vim 在這個新時代的重生。

到這里差不多就明白他們的聯系了。vim是終端下的vim,vim-gnome是用了GNOME GUI的vim,vim-tiny是tiny 版本的vim,就是功能比較少,但是體積小,速度快。

這里我們可以按照提示輸入 sudo apt-get install vim 安裝vim。如果出現無法安裝vim,可以先更新一下源:$ sudo apt-get update,然后再安裝。如果還不行,見Ubuntu無法安裝vim:

2.安裝完成后,輸入vim會進入vim的標准模式,這時按鍵盤的i進入插入模式,在里面寫點什么吧。

3.按Esc推出插入模式,進入標准模式,在這個模式下有幾個基本命令要掌握。

  • :wq 保存推出
  • i 進入插入模式
  • x 刪除當前光標的字符
  • dd 刪除當前行,並且保存當前行到剪切板
  • p 粘貼
  • :help <command> 查看命令的幫助
  • 上下左右移動光標

4.     輸入  :w filename  保存文件到當前目錄。這里如果filename和之前不一樣的話可以算是vim對文件的一個重命名,例如 :w test.c。就會將內容保存到test.c文件中。

5.     :q  退出vim頁面。

6.下次在該目錄下輸入  vim filename 就可以編輯或者查看這個文件了。如果沒有filename就會創建一個。

如果是想要編寫C語言代碼,可能還需要以下基本命令:

1. 打開文件夾:
     $ cd 路徑
2. 用vi/vim/gedit打開文件:
     $ vi 文件名
3. 進入root權限:
     $ su
4. 使用管理權限做某事(用gedit打開文件):
     $ sudo gedit sys.h
5. 拷貝文件
     $ cp 被拷貝文件 目標地址
6. 用gcc編譯c文件:
     $ gcc 文件名 ­o 文件名(不帶有.c)
7. 執行編譯好的目標文件:
     $ ./文件名
8. 為了使make命令執行並行處理,­ j 選項可以用來指定作業數,如果你的電腦是多核
cpu,j后面的數字最大可以是 核數*2,說白了就是硬件砸得越多,速度越快。
     $ make ­j4

初次學習這樣就差不多了,其他指令邊使用邊學習。

 

 

最后補充一下博客園沐浴梓狼博主的博客(寫的非常好):


vi編輯器是所有Unix及Linux系統下標准的編輯器,他就相當於windows系統中的記事本一樣,它的強大不遜色於任何最新的文本編輯器。他是我們使用Linux系統不能缺少的工具。由於對Unix及Linux系統的任何版本,vi編輯器是完全相同的,學會它后,您將在Linux的世界里暢行無阻。
vim 具有程序編輯的能力,可以以字體顏色辨別語法的正確性,方便程序設計;
因為程序簡單,編輯速度相當快速。
vim可以當作vi的升級版本,他可以用多種顏色的方式來顯示一些特殊的信息。
vim會依據文件擴展名或者是文件內的開頭信息, 判斷該文件的內容而自動的執行該程序的語法判斷式,再以顏色來顯示程序代碼與一般信息。
vim里面加入了很多額外的功能,例如支持正則表達式的搜索、多文件編輯、塊復制等等。 這對於我們在Linux上進行一些配置文件的修改工作時是很棒的功能。

1.vi/vim是什么?  

  ①vi是Visual Interface的縮寫,即 可視化接口

  ②vim是vi iMprove的縮寫,即 vi的增強版(具有語法着色功能)

2.vim模式有哪些?如何切換?

  ①三種模式

   命令模式(默認):剛進入vim的時候,默認就是 命令模式,可以復制行,刪除行等。
   輸入模式:可以輸入內容。
   末行模式:在最下邊,除編輯模式,可以輸入諸多管理員命令

  ②模式轉換

   命令模式→輸入模式:
     i:在當前光標所在字符的前面,轉為輸入模式
     I:在當前光標所在行的行首轉換為輸入模式
     a:在當前光標所在字符的后面,轉為輸入模式
     A:在光標所在行的行尾,轉換為輸入模式
     o:在當前光標所在行的下方,新建一行,並轉為輸入模式
     O:在當前光標所在行的上方,新建一行,並轉為輸入模式
     s:刪除光標所在字符
     r:替換光標處字符
   輸入模式→命令模式
     ESC鍵
   命令模式→末行模式
     輸入:即可 轉為末行模式
            在末行模式下
       10d:可刪除第10行
         10,20d:刪除10-20行
          set nu:顯示行號
          !命令:可以執行bash命令
   末行模式→命令模式
     ESC鍵    

3.使用vim如何打開文件?

  ① vim /path/to/somefile :vim后跟文件路徑及文件名 ,如果文件存在,則打開編輯文件窗口,如果文件不存在,則創建文件

      [root@libaoliang ~]# vim /etc/inittab  

   ② vim + # :打開文件,並定位到第#行,#代表數字

     [root@libaoliang ~]# vim +3 /etc/inittab  

  ③ vim + :打開文件,定位到最后一行

      [root@libaoliang ~]# vim + /etc/inittab  

  ④ vim +/PATTERN:打開文件,定位到第一次被PATTERN匹配到的行的行首

     [root@libaoliang ~]# vim +/start /etc/inittab 

 4.關閉文件

  末行模式下: 

   w:保存
   q:退出
   wq 或 x:保存退出,wq 和 x 都是保存退出
   q!:強制退出
   w!:強制保存,管理員才有權限

  命令模式下:

   ZZ:保存並退出

5.移動光標

命令模式下:

   ①逐字符移動
     h:向左
     l:向右
     j:向下
     k:向上
     #h:移動#個字符
   ②以單詞為單位移動
     w:移到下一個單詞的詞首
     e:跳至當前或下一個單詞的詞尾
     b:跳至當前或上一個單詞的詞首
     #w:表示移動#個單詞
   ③行內跳轉
     0:絕對行首
     ^:行首第一個非空白字符
     $:絕對行尾
   ④行間跳轉
     #G:跳轉到第#行
     G:最后一行

  末行模式下:

   ①行間跳轉
      直接輸入行號 回車即可

6.翻屏

  命令模式下
    Ctrl+f:向下翻一屏
    Ctrl+b:向上翻一屏

    Ctrl+d:向下翻半屏
    Ctrl+u:向上翻半屏 

7.刪除

  命令模式下

    ①刪除單個字符:
      x:刪除光標所在處單個字符
      #x:刪除光標所在處及向后共#個字符
    ②刪除命令:d
      d命令跟 跳轉命令組合使用 如:dw 表示刪除光標所在位置到下一個單詞詞首所有字符
      #dw,#de,#db :#dw表示 刪除當前光標所在處及向后第#個單詞詞首所有字符 
      dd:刪除當前光標所在行
      #dd:刪除包含當前光標所在行內的#行

  末行模式下:

      末行模式下 位置符號
        StartADD,EndADDd
          .:表示當前行
          $:最后一行
          +#:向下的#行
          $-#:向上的#行
      末行模式下,刪除命令d可以跟以上 位置符號 相結合使用   
     StartADD,EndADDd:刪除StartADD到EndADDd位置的所有行,例如:10,15d:刪除10到15行所有內容
     .d:刪除光標所在行,同dd 

8.粘貼命令: p

  p(小寫p):如果刪除的或復制的為整行內容,則粘貼到光標所在行的下方,如果復制或刪除的內容為非整行,則粘貼至光標所在字符的后面
  P(大寫P):如果刪除的或復制的為整行內容,則粘貼到光標所在行的上方,如果復制或刪除的內容為非整行,則粘貼至光標所在字符的前面

9.復制命令:y

 用法同d命令  
  命令模式
    yy:復制當前行
    yw (y#w,ye,y#e,yb,y#b):復制光標當前位置到下個單詞詞首內容.#代表數字
    y#G:復制當前位置當#行處的所有內容

  末行模式
    StartADD,EndADDy:復制StartADD到EndADDd位置的所有行,例如:10,15d:復制10到15行所有內容
    +3y:復制當前位置向下3行

10.修改c:先刪除內容,在轉換為輸入模式

   c:用法同d

11.替換:r

  r:單字符替換,會替換光標選中字符
  R:替換模式,可以做字符替換。

12.撤銷編輯操作:u(undo) 

  u:撤銷前一次編輯操作
  #u:直接撤銷#次操作
  Ctrl+r:撤銷最近一次撤銷操作

13.重復前一次編輯操作.

  .:比如 上一次dd刪除了一行,現在輸入.就可以重復dd刪除行的操作

14.可視化模式:

  命令模式: 
    v:按字符選取,鍵盤控制光標 划過 的區域被選取
     V:按矩形選取,鍵盤控制光標划過的行被選取

15.查找

  末行模式: 
    /PATTERN:從當前位置向后查找
    ?PATTERN:從當前位置向前查找
    n:向下查找
    N:向上查找

16.查找並替換

  在末行模式下使用s命令
    ADDR1,ADDR2s/PATTERN/String/gi
    ADDR1,ADDR2 表示地址;比如1,$表示全文 (%也表示全文)
    g:表示全局替換
    i:表示忽略大小寫

 17.vim打開多個文件

vim FILE1 FILE2 FILE3
 末行模式下
  :next 切換到下一個文件
  :prev 切換到上一個文件
  :last 切換到最后一個文件
  :first 切換到第一個文件
退出多個文件
  qa:全部退出

18.分屏顯示一個文件

vim打開文件后
  Ctrl+w,s:水平拆分窗口
  Ctrl+w,v:垂直拆分窗口
在窗口間切換光標
     Ctrl+w,ARROW  
  比如 Ctrl+w,→:(使用箭頭方向鍵)光標切換到右邊的窗口
  比如 Ctrl+w,h(左), j(下), k(上), l(右) 也可以切換窗口
在末行模式下
    :qa退出所有窗口

19.分窗口編輯多個文件

vim -o:水平分割顯示
vim -O:垂直分割顯示
例如:vim -o /etc/rc.sysinit /etc/inittab  :水平分割顯示/etc/rc.sysinit和/etc/inittab 這2個文件

20.將當前文件中部分內容保存為另外一個文件

末行模式下
    w:表示保存當前文件
    w /path/to/somewhere:將當前文件另存為到路徑指定的地方
    ADDR1,ADDR2w /path/to/somewhere:將ADDR1到ADDR2指定的地址文本 另存為到路徑指定的地方

21.將另一個文件的內容填充在當前文件中(r表示讀)

末行模式下
   r: /path/to/somefile
例如:vim /etc/rc.sysinit 打開文件后,末行模式 輸入 :r /etc/inittab :會將 inittab文件的所有內容附加到rc.sysinit文件光標所在的位置

22.跟shell交互(vim 末行模式執行shell)

末行模式
! command即可
例如: ! ls /etc/:會列出/ect目錄下所有文件及目錄 按enter后回到vim編輯狀態

23.高級話題

在末行模式下
①顯示或取消行號
        set nu(set number):顯示行號
        set nonu:取消顯示行號
②顯示忽略或區分字符大小寫
        set ic (set ignorecase):忽略大小寫
        set noignorecase:區分大小寫
③設定自動縮進
       set ai(set autoindent):自動縮進
        set noai:取消自動縮進
④查找到的文本高亮或取消高亮顯示
    set hlsearch:高亮顯示搜索到的文本
    set nohlsearch:取消高亮顯示搜索到的文本
⑤語法高亮
    syntax on:打開語法高亮顯示
    syntax off:關閉語法高亮顯示

24.vim配置文件

全局vim配置文件:/etc/vimrc
個人vim配置文件:~/.vimrc
[root@libaoliang ~]# echo "set nu" >> /root/.vimrc  # root用戶用vim打開文件時,顯示行號。

 

輸入以下命令修改配置文件

sudo vim /etc/vim/vimrc

syntax on就是語法高亮,如果你的是off請改成on。
另外把光標移到文件末尾,輸入以下配置(根據自己需要選擇)

colorscheme desert
" 設置配色為沙漠
" 其他可選: torte, solarized, molokai, phd, ron, evening等
set mouse=a " 設置可用鼠標點擊移動光標
set nu " 顯示行號
set nobackup " 覆蓋文件時不備份
set autowrite " 自動保存
set cursorline " 高亮顯示當前行
set tabstop=4 " 設置tab長度為4個空格
set softtabstop=4 " 設置軟tab長度為4個空格
set shiftwidth=4 " 設置縮進為4個空格
set expandtab " 將tab替換為空格
set autoindent " 設置自動縮進(對齊上一行)
set smartindent " 設置智能縮進
set cindent " 設置c語言的縮進方式
set showmatch " 自動匹配
set ruler " 在右下角顯示當前行信息
set incsearch " 搜索加強
set hlsearch " 搜索高亮
set ignorecase " 搜索忽略大小寫
set whichwrap=b,s,<,>,[,] " 光標從行首和行末時可以跳到另一行去
set scrolloff=3 " 光標移動到上下兩端時保持3行距離
set history=1000 " 歷史記錄條數從20到1000

最后:wq保存並退出。
配置這段出自簡書博主望月時生,鏈接:https://www.jianshu.com/p/aed2a485af96   著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。

也可以參考菜鳥教程學習 http://www.runoob.com/linux/linux-vim.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM