linux之vi,vim命令

2022-01-01 入門小站

收錄於話題 #Linux 231個

vim 是對 vi 的擴展,文中的很多操作是 vi 通用的

vi 是區分大小寫的命令的,也就是說 g與G 是不同的命令

在不同模式下,快捷鍵是不一樣的 模式分 一般模式 編輯模式 指令模式

一般模式用於文件內部操作,編輯模式用於輸入編寫等,指令模式用於對文本文件進行操作

常用操作

進入一般模式為開始編輯,或者按 esc 後進入

按鍵效果a,i,r,o,A,I,R,O進入編輯模式h,backspace左移動l,space右移動j下移動k上移動0,移動到行首$移動到行末,1
:set paste

進入 paste 模式以後,可以在插入模式下粘貼內容,不會有任何變形
這個參數做了這麼多事:

textwidth設置為0
wrapmargin設置為0
set noai
set nosi
softtabstop設置為0
revins重置
ruler重置
showmatch重置
formatoptions使用空值

下面的選項值不變,但卻被禁用

lisp
indentexpr
cindent

綁定快捷鍵來激活 / 取消 paste 模式

:set pastetoggle=<F11>

出現粘貼換行符錯位,設置一下 .vimrc

" this can change way of paste words
:set paste
" default tabstop=8
:set tabstop=4
" use keyboard F11 to  change paste mode
:set pastetoggle=<F11>

vim 縮進

Normal Mode 下,命令>>將對當前行增加縮進,而命令<<則將對當前行減少縮進
在命令前使用數字,來指定命令作用的範圍

5<<

在 Insert/Replace Mode 下

使用0-Ctrl-Shift-d命令,將移除所有縮進

需要注意的是,當我們輸入命令中的 「0」 時,Vim 會認為我們要在文本中插入一個 0,並在屏幕上顯示輸入的「0」;然後當我們執行命令 0-Ctrl-Shift-d 時,Vim 就會意識到我們要做的是減少縮進,這時 0 會就會從屏幕上消失

vim tab 縮進

tab 縮進寬度默認為 8 個空格

我們可以使用以下命令,來修改縮進寬度

:set tabstop=4
:set softtabstop=4
:set shiftwidth=4
:set expandtab

tabstop: 表示一個 tab 顯示出來是多少個空格的長度默認 8

softtabstop: 表示在編輯模式的時候按退格鍵的時候退回縮進的長度當使用 expandtab 時特別有用。

shiftwidth: 表示每一級縮進的長度一般設置成跟 softtabstop 一樣。當設置成 expandtab 時縮進用空格來表示noexpandtab 則是用制表符表示一個縮進

expandtab 選項,用來控制是否將 Tab 轉換為空格, 但是這個選項並不會改變已經存在的文本,如果需要應用此設置將所有 Tab 轉換為空格,需要執行

:retab!

vim 自動縮進
:set cindent

vim 可以很好的識別出 C 和 Java 等結構化程序設計語言,並且能用 C 語言的縮進格式來處理程序的縮進結構

:set smartindent

在這種縮進模式中,每一行都和前一行有相同的縮進量,同時這種縮進形式能正確的識別出花括號,當遇到右花括號(}),則取消縮進形式。此外還增加了識別 C 語言關鍵字的功能。如果一行是以 #開頭的,那麼這種格式將會被特殊對待而不採用縮進格式。

:set autoindent

在這種縮進形式中,新增加的行和前一行使用相同的縮進形式

顯示隱藏符號
" normal is :set nolist | show hide is :set invlist
:set nolist

使用 vim 寄存器

使用 vim 寄存器 「+p 粘貼

根本不用考慮是否自動縮進,是否 paste 模式,直接原文傳遞

如果想保存原寄存器中內容而同時增加新的內容,就要在 yy 前增加標籤
標籤以雙引號開始,跟著的是標籤名稱,可以是數字 0-9,也可以是 26 個字母

顯示所有寄存器內容

:reg

注意兩個特殊的寄存器:* 和 +

這兩個寄存器是和系統相通的,前者關聯繫統選擇緩衝區,後者關聯繫統剪切板
通過它們可以和其他程序進行數據交換

若寄存器列表裡無 * 或 + 寄存器,則可能是由於沒有安裝 vim 的圖形界面所致
sudo apt-get install vim-gnome

設置 vim 永遠顯示行號

修改 vim 的配置文件加入 set nu

vi ~/.vimrc

然後輸入

set nu

當然也可以輸入其他配置類似

set nonu
syntax on

vimrc 常用配置設置行號set nu設置自動縮進set autoindent設置tab佔n個字符set tabstop=n設置以空格代替tab(因為有部分場合不允許使用tab)set expandtab設置縮進字符數為nset shiftwidth=n設置自動語法高亮syntax on

相關焦點

  • Vim 基本命令入門-如何使用Vi/Vim文本編輯器
    本文簡單介紹下 Vim 入門基本命令。要安裝它並在CentOS中使用,您只需輸入以下內容:yum install vim-X11 vim-common vim-enhanced vim-minimal一旦完成,您可以享受全功能和強大的文本編輯器的全部好處。
  • 【Linux筆記】Vi/Vim編輯器
    Vim 是 Vi improved 的縮寫,是 vi 的改進版。學習vi/vim編輯器的使用是很有必要的。正如vim官網(https://www.vim.org/)中有一張很形象的說明:2、vi/vim的使用在Linux終端中輸入 vim -v 或 vi -v查看當前的vim版本(本文使用的Linux髮型版為:紅帽企業版6):
  • Linux vi/vim
    vim 鍵盤圖:vi/vim 的使用基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。這三種模式的作用分別是:命令模式:用戶剛剛啟動 vi/vim,便進入了命令模式。此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,並不會輸入一個字符,i被當作了一個命令。以下是常用的幾個命令:i 切換到輸入模式,以輸入字符。
  • 教你玩轉Linux—vi/vim
    但是目前我們使用比較多的是 vim 編輯器。vim 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設計。什麼是 vim?Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程式設計師中被廣泛使用。
  • 有關vi(vim)的常用命令
    閱讀大概需要6分鐘vi(vim)是上Linux非常常用的編輯器,很多Linux發行版都默認安裝了vi(vim)。
  • 精通LINUX vim/vi命令
    Linux vi/vim所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。
  • Linux之Vi/Vim和進程管理
    vim 鍵盤圖:vi/vim 的使用基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode)這三種模式的作用分別是:命令模式:用戶剛剛啟動 vi/vim,便進入了命令模式。此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,並不會輸入一個字符,i被當作了一個命令。
  • Linux之vim快速入門
    因為在linux平臺下,所以所有的操作都是通過命令完成。與vi的區別?vim是vi編輯器的增強版vi(vi improved),它可以實現更多的代碼編輯功能,比如用不同顏色高亮代碼,並且完全兼容vi的所有操作。
  • 實用技能:Linux Vim命令使用
    在講vim前,先講下vi 和vim 的區別哦它倆都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅兼容vi的所有指令,而且還有一些新的特性在裡面
  • 每天一個 Linux 命令(122):vim 命令
    1.簡介vim 是 Linux 作業系統中最通用的全屏幕文本編輯器,是 vi 的增強版(vi iMproved),與 vi 完全兼容,且擴充了很多功能。vim 編輯器支持編輯模式和命令模式,編輯模式下可以完成文本的編輯功能,命令模式下可以完成對文件的操作命令,要正確使用 vim 編輯器就必須熟練掌握這兩種模式的切換。默認情況下,打開 vim 後自動進入命令模式。從編輯模式切換到命令模式使用 ESC 鍵,從命令模式切換到編輯模式使用 A、a、O、o、I、i 鍵。
  • 菜鳥教程 - vi/vim超詳細使用講解
    簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。vim 則可以說是程序開發者的一項很好用的工具。        連 vim 的官方網站 (http://www.vim.org) 自己也說 vim 是一個程序開發工具而不是文字處理軟體。
  • vi、vim、gvim功能簡介與gvim的安裝
    vi、vim、gvim的聯繫與區別大家可能都聽說過vi  vim  gvim,下面講解他們之間的聯繫與區別:vi功能是最弱的,後來vi被增強加入眾多特性,就是vim。再後來vim加入圖形接口(GUI),就產生了gvim。很多命令從前到後被依次沿用,因此基本操作是類似的。但是功能最強的是gvim,它的很多特性vim並不支持,vi更不支持。比如你想讓色彩更豐富?把光標閃爍停了?設置獨立於終端的字體 ....這些只有gvim支持。
  • 圖解Linux最常用命令!秒懂!
    linux不僅可以長時間的運行我們編寫的程序代碼,還可以安裝在各種計算機硬體設備中,如手機、路由器等,Android程序最底層就是運行在linux系統上的。一、linux的目錄結構sbin (super user binaries)存放二進位可執行文件,只有root才能訪問usr (unix shared resources)用於存放共享的系統資源lib (library)存放跟文件系統中的程序運行所需要的共享庫及內核模塊mnt (mount)系統管理員安裝臨時文件系統的安裝點tmp (temporary
  • 史上最全的Vim命令
    vim 鍵盤圖:vi/vim 的使用基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。這三種模式的作用分別是:命令模式:用戶剛剛啟動 vi/vim,便進入了命令模式。此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,並不會輸入一個字符,i被當作了一個命令。以下是常用的幾個命令:i 切換到輸入模式,以輸入字符。
  • Linux之vi 文本編輯命令
    vi 的三種模式:1.命令模式(Command mode):用於執行命令,vi 的默認進入狀態(不可以輸入字符,但可以對字符進行操作,複製、移動、刪除等操作);2.輸入模式(Insert mode):用於輸入文本(輸入字符,使用 del 和退格 backspace 鍵刪除字符);3.末行模式(Last line mode):用於執行待定命令
  • Linux中的vim編輯器使用
    vim 不僅僅兼容vi所有的命令,而且高亮顯示,vi只能運行在 UNIX 和 Linux 中,而 vim 可以跨平臺運行在Windows,MAC OS 中。vim 號稱 「編輯器之神」,具有無可匹敵的可擴展性。
  • Linux系列教程(十)——Linux文本編輯器vim
    結束了Linux常用命令的學習,接下來我們學習Linux最常用的文本編輯器命令 vim。其實最開始Linux系統的文本編輯器命令是 vi,後來出現了一個 vi 的增強版 vim,所以實際操作中我們還是使用增強版 vim。
  • Linux生產環境上,最常用的一套「vim「技巧
    引子研發線上使用最多的編輯器,就是vi。無論是最快查看某個文件內容,還是快速編輯某個文件,vi都能幫上忙。
  • 【Linux實戰】Vim編輯器和恢復ext4下誤刪除的文件
    vim主要模式介紹,vim命令模式。確保系統已經安裝了VIM工具[root@panda ~]# rpm -qf `which vim`[root@panda ~]# rpm -qf `which vi`擴展:問:vi和vim
  • vi 常用使用命令
    常用Linux辦公,經常會使用vi或者vim進行查看程序和log文件,有時會對文件進行輕微地改動,增刪改查。