vim文本基礎

来源:http://www.cnblogs.com/keerya/archive/2017/08/02/7275310.html
-Advertisement-
Play Games

目錄 <!--[if supportFields]><span lang=EN-US><span style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>TOC \o "1-3" \h \z \u < ...


目錄

一、關於vim... 1

二、Vim三種主要模式... 1

2.1命令模式.... 1

2.2插入模式(編輯模式).... 1

2.3擴展命令模式.... 1

2.4模式之間相互轉換.... 1

三、打開文件.... 2

四、關閉文件.... 2

4.1擴展命令模式:.... 2

4.2命令模式:.... 3

五、游標移動.... 3

5.1字元間跳轉.... 3

5.2單詞間跳轉.... 3

5.3當前頁跳轉.... 3

5.4行首行位跳轉.... 4

5.5行間移動.... 4

5.6句間移動.... 4

5.7段落間移動.... 4

5.8翻屏操作.... 4

六、文本插入.... 5

6.1插入模式下:.... 5

6.2替換命令(命令模式下):.... 5

七、剪切、複製和粘貼(命令模式下)... 5

7.1剪切命令(刪除).... 5

7.2複製命令(yyank.... 6

7.3粘貼命令(ppaste.... 7

7.4撤銷更改.... 7

八、查找與替換(擴展命令模式).... 8

8.1查找.... 8

8.2替換.... 8

九、可視化模式(命令模式下)... 9

十、視窗分隔.... 9

10.1多文件模式.... 9

2、視窗分割.... 10

十一、vim工作特性.... 10

十二、vim幫助.... 12

十三、補充擴展.... 12

13.1以二進位方式打開文件.... 12

13.2地址定界(擴展命令模式下).... 13

13.3命令模式擴展.... 13

 

 

一、關於vim

一個功能十分強大的文本編輯器,在linux中使用十分廣泛

二、Vim三種主要模式

2.1命令模式

命令模式是vim的預設模式,在該模式下,用戶可以通過鍵盤,實現移動游標,剪切、粘貼文本等操作。

2.2插入模式(編輯模式)

在插入模式下,用戶可以對文本進行修改。

2.3擴展命令模式

在該模式下,用戶可以實現對文件的保存、退出等操作。

2.4模式之間相互轉換

命令模式進入插入模式:按“iIoOaA”鍵(詳見6.1)

命令模式進入擴展命令模式:按“:”鍵

插入模式返回命令模式:按“esc”鍵

擴展命令模式返回命令模式:按兩次“esc”鍵或者“enter”鍵

 

三、打開文件

    我們在使用vim打開一個文件時,如果這個文件時已存在的,我們可以打開瀏覽或修改;如果這個文件不存在,vim會在第一次存檔時創建它。

命令:vim

格式:vim [OPTION]... FILE...

選項:    +#  文件打開後,游標處於第#行行首。(+預設最後一行行首)

               +/ PATTERN  文件打開後,游標處於第一個被PATTERN匹配到的行的行首

               -b  二進位方式打開文件

               -m  只讀方式打開文件

               -d file1 file2  同時打開多個文件(切割視窗)

              -e  直接進入擴展命令模式

四、關閉文件

4.1擴展命令模式:

        q     退出

             q!    強制退出,放棄做出的修改

             wq  保存並退出

             x    保存並退出

註:wq!或x  當文件對當前用戶許可權為read-only時,可以強制保存並退出(僅限root和當前文件的owner

4.2命令模式:

             ZZ         保存並退出

             ZQ        不保存直接退出

    不建議使用該方法,一般建議使用擴展命令模式下的關閉方法

五、游標移動

5.1字元間跳轉

h:左    j:下    k:上    l:右

#COMMAND:跳轉由#指定的個數的字元

5.2單詞間跳轉

w:下一個單詞的詞首

e:在詞首或詞中時,跳轉當前詞尾;在詞尾時,跳轉下一單詞的詞尾

b:在詞中或詞尾時,跳轉當前詞首;在詞首時,跳轉前一單詞的詞首

#COMMAND:跳轉由#指定的個數的單詞數

5.3當前頁跳轉

H:頁首    M:頁面中間行    L:頁底

5.4行首行位跳轉

^: 跳轉至行首的第一個非空白字元

0: 跳轉至行首

$: 跳轉至行尾

5.5行間移動

擴展命令模式下:

# :跳轉至由#指定行

G:最後一行   

1G, gg: 第一行

5.6句間移動

):下一句    (:上一句

5.7段落間移動

}:下一段     {:上一段

5.8翻屏操作

命令模式下:

Ctrl+f: 向文件尾部翻一屏

Ctrl+b: 向文件首部翻一屏

Ctrl+d: 向文件尾部翻半屏

Ctrl+u:向文件首部翻半屏

六、文本插入

6.1插入模式下:

i: insert, 在游標所在處輸入

I:在當前游標所在行的行首輸入

a: append, 在游標所在處後面輸入

A:在當前游標所在行的行尾輸入

o: 在當前游標所在行的下方打開一個新行

O:在當前游標所在行的上方打開一個新行

6.2替換命令(命令模式下):

       r: 替換游標所在處的字元

R:切換成擴展命令模式

七、剪切、複製和粘貼(命令模式下)

7.1剪切命令(刪除)

d:刪除命令,可結合游標跳轉字元,實現範圍刪除

d$:刪除到行尾

d^:刪除到非空行首

d0:刪除到行首

dw:刪除到下一個單詞的詞首

de:游標位於詞首或詞中時,刪除到該單詞詞尾;游標位於詞尾時,刪除到下一個單詞的詞尾

db:游標位於詞尾或詞中時,刪除到該單詞的詞首;游標位於詞首時,刪除到前一個單詞的詞首

#COMMAND 加上hjkl方向箭向左時不包含當前字元。

dd:刪除游標所在的行

#dd:多行刪除(刪除游標所在行開始的共#行)

D:從當前游標位置一直刪除到行尾,留空行,等同於d$

dG 從游標所在處的當前行刪除到尾行

dgg 從游標所在處刪除至首行

dH 從游標所在處刪除到當前頁的首行

dL 從游標所在處刪除到當前頁的尾行

dM 從游標所在處刪除到當前頁的中間行

7.2複製命令(yyank

         y:複製,行為相似與d命令

         y$:游標所在位置複製到行尾

         y0:游標所在位置複製到行首

         y^:游標所在位置複製到行首第一個非空字元

         ye:若游標在詞首,複製當前單詞;若游標在詞中或詞尾,複製到下一個單詞詞尾

         yw:游標所在處複製到該單詞詞尾

         yb:若游標在詞中或詞尾,複製當前單詞;若游標在詞首,複製到前一個單詞的詞首

             #COMMAND

                 yy:複製行    #yy: 複製多行    Y: 複製整行

             同樣支持與GggHML配合。

7.3粘貼命令(ppaste

p:緩衝區存的如果為整行,則粘貼當前游標所在行的下方;否則,則粘貼至當前游標所在處的後面

P:緩衝區存的如果為整行,則粘貼當前游標所在行的上方;否則,則粘貼至當前游標所在處的前面

7.4撤銷更改

u撤銷最近的更改

#u撤銷之前多次更改

U 撤消游標落在這行後所有此行的更改

Ctrl - r重做最後的“撤消”更改

. 重覆前一個操作

n.重覆前一個操作n

註:複製粘貼均可使用地址定界,詳細見13.2

八、查找與替換(擴展命令模式)

8.1查找

     /PATTERN:從當前游標所在處向文件尾部查找

     ?PATTERN:從當前游標所在處向文件首部查找 

     n:與命令同方向

     N:與命令反方向

8.2替換

格式:s/要查找的內容/替換為的內容/修飾符

     Eg:把所有的root替換成log  >   %s/root/log/g

要查找的內容:可使用模式

替換為的內容:不能使用模式,但可以使用\1, \2, ...

等後向引用符號;還可以使用“&”引用前面查找時查找到的整個內容

註:命令首加上%代表搜索文件全部內容,如果不加%,則表示只搜索游標所在行。

關於修飾符:

     i: 忽略大小寫

     g: 全局替換(預設情況下,每一行只替換第一次出現的)

     gc:全局替換,每次替換前詢問

註:查找替換中的分隔符/可替換為其它字元,例如

     s@/etc@/var@g

九、可視化模式(命令模式下)

允許選擇的文本塊

v 面向字元

V 面向行

ctrl-v 面向塊

              可視化鍵可用於與移動鍵結合使用:

w ) } 箭頭等

突出顯示的文字可被刪除,複製,變更,過濾,搜索,替換等

十、視窗分隔

10.1多文件模式

Vim可以同時打開多個文件進行比較操作

格式:vim FILE1 FILE2 FILE3 ...

    選項:   :next 下一個

             :prev 前一個

             :first 第一個

             :last 最後一個

             :wall 保存所有

             :qall 退出所有

             :wqall

2、視窗分割

①多文件分割

     vim -o|-O FILE1 FILE2 ...

     -o: 水平分割

     -O: 垂直分割

註:在視窗間切換:Ctrl+w, Arrow

②單文件視窗分割:

      Ctrl+w,s: split, 水平分割 

      Ctrl+w,v: vertical, 垂直分割 

      ctrl+w,q:取消相鄰視窗 

      ctrl+w,o:取消全部視窗

      wqall 退出

十一、vim工作特性

Vim的設置當放在配置文件里才可以永久生效,配置文件如下:

全局: /etc/vimrc

個人: ~/.vimrc

Vim配置

(1) 行號

顯示: set number, 簡寫為set nu

取消顯示: set nonumber, 簡寫為set nonu

(2) 括弧成對匹配

匹配: set showmatch, 簡寫為set sm

取消: set nosm

(3) 自動縮進

啟用: set ai

禁用: set noai

(4) 高亮搜索

啟用: set hlsearch

禁用: set nohlsearch

(5) 語法高亮

啟用: syntax on

禁用: syntax off

(6) 忽略字元的大小寫

啟用: set ic

不忽略: set noic

(7) 文件格式

啟用windows格式: set fileformat=dos

啟用unix格式: set fileformat=unix

(8) 設置文本寬度

:set textwidth=65 (vim only)

:set wrapmargin=15

:help option-list

:set or :set all

十二、vim幫助

vi/vim內置幫助

:help

:help topic

Use :q to exit help

Vimtutor

十三、補充擴展

13.1以二進位方式打開文件

vim –b binaryfile

 擴展命令模式下,利用xxd

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.創建一個本地項目,比如/d/text文件夾 2.建立本地倉庫 首先進入text文件夾 初始化執行指令: 將所有文件添加到倉庫執行指令: 執行指令(雙引號內是提交註釋): git commit -m "提交文件" 執行指令(雙引號內是提交註釋): 3.關聯github倉庫 到github text ...
  • sratookit 下載後解壓 移動到專門安裝生物信息軟體的目錄下 加入環境變數 測試 下載測試文件SRR390728,預設存放在家目錄下的ncbi文件夾中 轉換sra文件的套路: -O 指定輸出路徑 --gzip 指定輸出格式為gzip壓縮格式(fastqc軟體可以直接識別gzip壓縮的文件) - ...
  • 1.創建用戶 groupadd sftp 2.添加用戶並設置為sftp組 useradd -g sftp -s /sbin/nologin -M sftp (/sbin/nologin為禁止登錄shell的用戶) 3.設置用戶密碼 passwd sftp 4.創建用戶目錄。並設置許可權。 cd /ho ...
  • LNMP編譯安裝之php安裝--圖文詳解 1、前言 本次安裝採用源碼安裝,主要資源包從官網下載,次要依賴則使用yum進行安裝,本篇只涉及php的安裝,不涉及php的配置,對應nginx如何訪問php,本篇也不涉及。該教程純屬安裝,不涉及任何重要知識點,老少皆宜。 2、安裝步驟 php官網:http: ...
  • 在使用Linux系統時,有時會因為文件創建時間很久,而記不得全全名,只能記得模糊的幾個關鍵字時,就可以使用文件查找命令來進行快速搜索。Linux提供最常用的搜索方有兩個工具locate與find。不過在日常中還是使用find比較多,因為他具有時效性。 一、 locate locate的搜索是基於數據 ...
  • Windows下的常見壓縮格式有.zip和.rar,而Linux下的常見壓縮格式有:gz,bzip2,xz,zip等由於壓縮演算法的不同,所以以上幾個壓縮後的文件大小各不同。 一、gzip 用法: gzip壓縮與解壓完成後會刪除源文件。 二、bzip2 用法: 壓縮文件: 解壓文件: k 不刪除原文件 ...
  • 開機啟過程 POST—>BOOT SEQUENCE—> BOOTLOADER—>KERNEL + INITRAMFS(INITRD)—>ROOTFS—>/sbin/init POST:加電自檢 當開機按下電源按鈕後,電腦開始加電,主板上的BIOS或UEFI基本輸入輸出程式開始對硬體進行檢查,檢查內 ...
  • 步驟: 1.去官網下載jdk壓縮包 網址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 如圖: 如圖所示:選擇Accept License Agreement模式,並選擇你要下載 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...