vim命令使用總結

2021-01-10 種下星星的日子

一. vim簡介

vim 是linux系統自帶的文本編輯器。

vim 共有三種模式:

命令模式:用vim打開文件就進入了命令模式;輸入模式:在命令模式輸入i/I/a/A/o/O就進入輸入模式;

在輸入模式下按鍵esc,則退出輸入模式進入命令模式底線模式:在命令模式按下英文冒號:就進入了底線模式;

二. vim命令使用總結

2.1 光標移動

(1)光標上下左右移動(鍵盤的上下左右四個鍵):

向上、向下同理。

(2)行首、行尾:

(3)移動到具體的某一行

(4)移動到單詞

2.2 查找

在命令模式下輸入以下命令進行查找,光標會跳轉到第一個匹配的字符,此時按下n 代表重複前一個搜索動作;按下N代表反向重複前一個搜索動作 。

2.2.1 Vim查找支持正則表達式

例如/vim$匹配行尾的"vim"。需要查找特殊字符需要轉義,例如/vim\$匹配"vim$"。

注意:查找回車應當用\n,而替換為回車應當用\r(相當於<CR>)。

2.2.2 vim查找默認是大小寫敏感查找

在查找模式中加入\c表示大小寫不敏感查找,\C表示大小寫敏感查找

例如:/foo\c 會查找所有foo、FOO、fOOD等

2.2.3 查找光標所在單詞

在命令模式下按下:

*:匹配當前光標所在的單詞(這裡的單詞是指前後為空白字符或者點號,例如當前為foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。這在查找函數名、變量名時非常有用),並將光標移動到下一個單詞

#:匹配當前光標所在的單詞,並將光標移動到上一個單詞

g*:查找光標所在單詞的字符序列,每次出現前後字符無要求,例如當前為foo,那麼foo bar和foobar中的foo均可被匹配到。

2.3 替換

替換的語法如下::{作用範圍}s/{目標}/{替換}/{替換標誌}

% :代表在全文範圍內查找並替換

g:所有的出現都會被替換

i:i表示大小寫不敏感

I:I表示大小寫敏感

2.4 刪除

2.5 複製粘貼

2.6 縱向編輯

塊操作也叫縱向編輯模式。

縱向編輯不僅是編輯器的一種功能,更是人們思考問題的一種方式,項目符號、段落編號,都是縱向編輯的體現

2.6.1 進入縱向編輯模式

在 Vim 命令模式下,移動遊標定位於某一個位置,鍵入 ctrl-v後狀態欄上出現 VISUAL BLOCK 字樣,即進入縱向編輯模式。移動光標以按需選擇待編輯的區域。

2.6.2 批量修改

第一步:將光標定位於想要修改的字符

第二步:ctrl-v 進入縱向編輯模式

第三步:移動光標選中需要修改的修改的區域 (鍵入G:移動光標至最後一行;鍵入gg:移動光標至第一行)

第四步:鍵入r進入修改模式

第五步:鍵入想改成為的字母(貌似只支持英文,中文不支持)的同時完成修改

說明:這種方式只支持單字符的修改的修改,如果一次選中多個字符比如「12」,想要修改為「ab」,按下a的時候「12」已經改為「aa」了。

2.6.3 批量插入

第一步:將光標定位於想要修改的字符

第二步:ctrl-v 進入縱向編輯模式

第三步:移動光標選中需要修改的修改的區域 (鍵入G:移動光標至最後一行;鍵入gg:移動光標至第一行)

第四步:鍵入I或者A進入插入模式(I:在光標之前插入;A:在光標之後插入)

第五步:鍵入想插入的字符串

第六步:ESC 退出縱向編輯模式的同時所有選中的字符後都添加了想要插入的內容

2.6.4 批量刪除

第一步:將光標定位於想要修改的字符

第二步:ctrl-v 進入縱向編輯模式

第三步:移動光標選中需要修改的修改的區域 (鍵入G:移動光標至最後一行;鍵入gg:移動光標至第一行)

第四步:鍵入d的同時完成選中內容的刪除

2.6.5 vim插件VisIncr

Vim 的縱向編輯模式還可以通過插件 VisIncr 的擴展,實現更豐富的功能,如縱向的生成數列,這裡暫未探究。

2.7 其他命令

2.8 vim 打開文件後顯示亂碼

Vim 有四個跟字符編碼方式有關的選項,encoding、fileencoding、fileencodings、termencoding ,它們的意義如下:

encoding—— Vim 內部使用的字符編碼方式,包括 Vim 的 buffer (緩衝區)、菜單文本、消息文本等。如你的vim的encoding為utf-8,所編輯的文件採用cp936編碼,vim會自動將讀入的文件轉成utf-8(vim的能 讀懂的方式),而當你寫入文件時,又會自動轉回成cp936(文件的保存編碼)。

fileencoding —— Vim 中當前編輯的文件的字符編碼方式,Vim 保存文件時也會將文件保存為這種字符編碼方式 (不管是否新文件都如此)。

fileencodings —— Vim自動探測fileencoding的順序列表, 啟動時會按照它所列出的字符編碼方式 從前到後,逐一探測 即將打開的文件的字符編碼方式。因此最好將Unicode 編碼方式放到這個列表的最前面,如果都找不到,那麼就會以 latin1 (ASCII)的方式打開。

termencoding—— Vim 所工作的終端 (或者 Windows 的 Console 窗口) 的字符編碼方式。如果vim所在的term與vim編碼相同,則無需設置。如其不然,你可以用vim的termencoding選項將自動轉換成 term的編碼.這個選項在 Windows 下對我們常用的 GUI 模式的 gVim 無效,而對 Console 模式的Vim 而言就是 Windows 控制臺的代碼頁,通常我們不需要改變它。

註:Vim 在線幫助 :help encoding-names

2.9 windows與linux系統互傳文件問題分析解決

2.9.1 vim打開文件後出現^M的解決方法

在linux下,不可避免的會用VIM打開一些windows下編輯過的文本文件。我們會發現文件的每行結尾都會有一個^M符號,這是因為 windows編輯器和 Linux編輯器對文件行末的回車符處理不一致,對於回車符的定義:

windows:0D0Aunix\linux:0AMAC:0D解決方法:

2.9.2 windows文件上傳到linux之後無法解析

(1)unix2dos filename

將unix中文件轉換為windows可查看的格式(主要是非可見字符)

(2)dos2unix filename

將windows中的文件轉換為unix可查看的格式 (主要是非可見字符)

相關焦點

  • VIM編輯器學習
    VIM學習方法本文引用地址:http://www.eepw.com.cn/article/151642.htm  Vim目前已經有類Unix版和Windows版,儘管vim較vi已經改良了不少,但是初次使用還是會一頭霧水,不知如何操作,所以學習vim要首先過2關。
  • 在VIM中實現對嵌入式軟體的調試
    流傳著這樣一種說法,「世界上的程式設計師分三種,一種使用Emacs,一種使用VIM,剩餘的是其他。」不去辯論這句話的對與錯,單純從字面意義上來理解,也足見VIM的魅力了。因此,在VIM中實現對嵌入式軟體的調試,我們便得到了一個高效、穩定的嵌入式Linux的開發環境。
  • 開發者的實用 Vim 插件(一) - OSCHINA - 中文開源技術交流社區
    特別是對於剛剛使用 Vim 或者使用 Vim 做開發的的軟體開發者來說,我們將在本教程中討論一些非常有用的 Vim 插件,具體請看例示。請注意:本教程中列舉的所有例示、命令和說明都是在 Ubuntu 16.04 環境下進行測試的,並且,我們使用的 Vim 版本是 7.4。
  • liunx其他命令-ln命令的使用
    1.命令格式:ln [參數][源文件或目錄][目標文件或目錄]2.命令功能:Linux文件系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱
  • Git常用命令總結及其用法說明
    以下是小編在工作中總結的關於git命令的一些使用方法,僅供參考。git commit -m 'update .gitignore'2、git忽略某個指定的文件(不從版本庫中刪除)執行命令如下:git update-index --assume-unchanged config.conf
  • Solaris 10調度任務:crontab命令使用
    10.2.3  crontab命令的使用  crontab命令格式:crontab  參數如下。  - -e:執行文字編輯器來設定時程表,內定的文字編輯器是VI。  - -r:刪除目前的時程表。  - -l:列出目前的時程表。
  • 「CAD」縮放命令的兩種使用方法
    縮放命令是修改工具欄裡面一個使用頻率非常高的命令。在繪製圖形的過程中,經常需要把一個圖形放大或者縮小,此時縮放命令就派上用場啦!縮放的時候一般有兩種方法,一種是按比例縮放,另一種是按參照來縮放。兩種縮放方法都是經常要用的,所以有必要全部掌握。
  • 詳細介紹Linux telnet命令的使用
    詳細介紹Linux telnet命令的使用 對Linux系統進行遠程登錄是一件很平常的工作,Linux telnet命令就是系統管理員必須得掌握的一個知識,本文將詳細介紹Linux telnet命令。
  • Linux命令cheat的安裝和使用
    大家好,今天周二,還是和往常一樣,沒有精神,每天坐在電腦前一坐就是一天,感覺身體也是一天不如一天了,不說這些,今天說一下Linux命令cheat, cheat 允許你在命令行中創建和查看交互式的速查表cheatsheet。它能幫助提醒 *nix 系統管理員他們經常使用但還沒頻繁到會記住的命令的選項,raksmart伺服器。
  • Linux下scp命令使用教程
    scp是secure copy的簡寫,用於在Linux下進行遠程拷貝文件的命令,scp傳輸是加密的,可能會稍微影響一下速度其佔用的系統資源非常小。非常適合遠程文件的拷貝。本篇我們就詳細介紹下scp的用法。
  • NFS伺服器中mount命令的使用
    首先我們來了解一下mount命令的使用。用戶既可以通過mount命令掛載,也可以通過在/etc/fstab中加入條目項實現,/etc/fstab中的條目項中包括一個NFS的掛載類型。NFS文件系統的名稱由文件所在的主機名加上被掛載目錄的路徑名組成,兩個部分通過冒號分開。
  • 人人都在用的「DOS」命令!
    電腦使用中常用的DOS命令也許許多人都見過「DOS命令」這些字眼,也有許多人認為DOS命令是黑客專屬、計算機專業人員專屬的;實則不然,其實DOS命令是每一個使用計算機(電腦)的人們都應該掌握的。再或者,也許你在日常生活中也已經經常使用到這些「DOS命令」,而你卻渾然不知。
  • CAD新手福利:老師傅總結命令詳解,已收藏
    二、STYLE,文字樣式設置文字樣式,也可以對TEXT和MTEXT命令創建文字時使用的當前樣式進行修改或編輯。在CAD中會提供一到兩種默認的文字樣式,但默認文字樣式通常不能滿足所有需求。如果圖紙對字體沒有嚴格要求,可以使用作業系統的字體,設置起來比較簡單。但如果圖紙比較大,文字比較多,建議使用CAD自帶的字體。如果要正常顯示中文,文字樣式必須設置一種大字體。
  • 如何在使用 scp 命令時遞歸地排除文件
    我使用的是下面的 scp 命令,但不知道如何排除特定的文件(如 *.out):$ scp-r ~/projects/ user@hostB:/home/delta/projects/如何告訴 scp 命令在 Linux/Unix 命令行中排除特定的文件或目錄?人們可以使用 scp 命令在網絡主機之間安全地複製文件。它使用 ssh 進行數據傳輸和身份驗證。
  • lammps教程:velocity命令三種使用方法
    在lammps中,使用velocity命令設置原子的速度,命令格式為:velocity group-ID style args keyword value ...其中,group-ID指定哪一組原子將要被設置速度,style決定了速度設置的類型。
  • CAD新手攻略:修剪(TRIM)CAD命令快捷鍵的使用技巧
    在使用浩辰CAD軟體繪製圖紙的過程中經常會用到各種CAD命令快捷鍵,比如當需要對CAD圖紙中部分圖形進行修剪調整時就會用到修剪命令,那麼修剪命令如何使用呢?下面小編給大家具體介紹一下修剪功能及其CAD命令快捷鍵的使用吧!
  • CAD使用技巧,15個命令走天下!
    ,命令的執行方式多種多樣,基本上有兩種: 一種是先輸入命令(或選擇命令按鈕)再執行操作,另外一種是先選擇,然後在執行命令。 大部分命令執行的過程是單一的,也就是說在執行的過程中只能執行完,或者中途取消。但也有些命令是在一個命令的執行過程中可以執行另外一個命令,也就是說A命令執行的過程中可以執行B命令,B命令執行完後,繼續執行A命令,直至結束。這樣的命令叫「透明命令」。 3、選擇物體的方式。
  • Python-調用系統命令的方法
    前言在Python裡面,直接調用系統命令,可以快速的完成任務。一般使用os或者subprocess模塊,來執行系統命令。注意:使用該函數經常會莫名其妙地出現錯誤,但是直接執行命令並沒有問題,所以一般建議不要使用。