vim簡單總結

編輯器種類

常用的文本編輯器有:

  • 行編輯器,如sed,awk,cut等

  • 全屏編輯器,如vi,vim(vi增強版),nano等

vim的模式

  • 命令模式:使用vim filename打開文件后,進入的第一個模式。

    • 直接使用鍵盤操作文本的編輯

  • 插入模式:INSERT模式

    • 進入:i,從當前光標處開始

    • 進入:I,從當前行行首開始

  • 末行模式:vim內置命令接口。

    • 以:開頭命令

  • 替換模式:replace。會將光標所在的地方,替換為輸入的內容。

    • 進入:在命令模式下,輸入R命令,進入替換模式。

    • 輸入r命令,則只能替換一次

  • 可視化模式:代替鼠標進行選定。搭配命令模式的一個命令作為結尾

    • v 字符為單位

    • V 行為單位

    • c+v 面向塊

    • visual模式下,可配合w,),}等使用

  • 多窗口模式

  • 鎖屏

    • ctrl+s,vim鎖屏

    • 鎖屏后,屏幕中,vim顯示的內容,無論輸入什么,顯示的內容都不會變化。

    • 鎖屏后的所有輸入,都會被記錄,并且在解鎖后,執行。同未鎖屏相同的效果

    • ctrl+q,解鎖

打開文件

  • -m 只讀模式打開文件,文件被編輯后不能夠保存,只能夠強制退出 
    vim簡單總結

    • 其他的一個只讀模式——使用view替換vim打開文件,文件被編輯后,可以用:wq!來強制保存退出 
      vim簡單總結

  • -d file1 file2 對比兩個文件,不同的地方顯示高亮 
    vim簡單總結vim.1.png

  • vim +[num] 文件打開后,光標直接跳到第num行的行首,如果沒有指定num,則光標跳到文件的最后一行的行首

  • vim +/pat 打開文件后,光標跳到第一個匹配{pat}的行的行首 
    tips

  • 如果vim DIR,也同樣可以進入,同樣可以編輯,但是無法保存。 
    Linux同一個目錄下,不能有同名的文件夾或文件

  • 顯示:標準屏幕顯示20行

末端模式命令

:wx 見標題:編輯完成后 
:r /path 在光標所在行之后,新建行,并 讀入文件 
:!cmd 在vim中執行bashshell的命令(并不會插入) 
:r ! cmd 或者 :r!cmd 在當前行之后插入命令執行結果

定位,跳轉

單詞跳

  • w    下一個單詞詞首

    • #w    下面的#個單詞詞首

  • e    下一個單詞詞尾

    • #e    下#個單詞詞尾

  • b    前一個單詞的詞首

    • #b    前#個單詞詞首

字符跳

  • h 向左跳一個字符

    • [num]h 向左跳[num]個字符

  • j 向下跳一個字符

    • [num]j 向下跳[num]個字符

  • k 向上跳一個字符

    • [num]k 向上跳[num]個字符 
      tips: 
      Japan在Korea下面,J向下,K向上

  • l 向右跳一個字符

    • [num]l 向右跳[num]個字符

多行跳

  • H(HIgh) 當前頁第一行的行首

    • [num]H 當前頁第[num]行的行首

  • L(low) 當前最后一行的行首

    • [num] L 當前頁倒數第[num]行的行首

  • M(middle) 當前頁中間一行的行首

  • \^ 行首(不算空格)

  • 0 絕對行首

  • $ 絕對行尾

  • G 文章最后一行行首

    • [num]G 第[num]行行首

  • :[num] 文章的第[num]行

  • 文章第一行 1G,:1,gg

  • ( 前一句(以.為分隔)

  • ) 后一句

  • { ·前一段

    • 兩行之間只有回車,不算段落,必須之間有一個空行,才算是不同段落。

  • } 后一段

屏幕為單位

  • c+f 前進一屏

  • c+b 后退一屏

  • c+d 前進 半屏

  • c+u 后退半屏

命令模式快捷鍵

  • x

    • #x

  • d

    • #d

  • y復制字符

    • #y

  • yy 復制行

    • #yy

  • c替換

    • #c

  • C刪除到光標所在行尾,并切換到insert模式

    • #C

  • gu(變小寫),

  • gU(變大寫)的相關操作、 
    NOTES: 
    [num]gu/gU,操作num+1行,并且num默認為1,即gu/gU至少操作兩行 
    在組合模式中:0gU$將本行從行首到行尾都轉換為大寫

  • ~大小寫轉換

這些命令通常都可以與地址定界符相結合使用,以d為例,如下: 
d$ 
d^ 
dH 
dL 
dM 
dw 
de 
db 
d) 
d} 
d( 
d{ 
dgg 
dG 
d1G 
還可以在命令前后都添加地址定界符,語法為: 

  • J 去掉行尾的回車符,將不同的行轉換為同一行

  • p 在光標之后粘貼

  • P在前面粘貼

  • u 撤銷

    • u 撤銷

  • U 撤銷光標落在這一行后,對此行所做的所有更改

  • c+r 取消剛才的撤銷,

  • . ()英語的句) 重做

  • [num]. 重做num次,默認為1

地址定界

  • :#

  • :#1,#2

  • :#1,+#2

  • :. 當前

  • :$ 最后一行

  • :$-1 倒數第二行

  • %或者‘:1,$’ 第一行到最后一行

  • :/pat1/,/pat2/d刪除第一個匹配pat1到第一次匹配pat2之間的行。

  • :#,/pat3/從第#行開始,到第一次匹配pat3,之間的行

vim的命名寄存器

vim一共有26個(a-z),1個無命名寄存器(默認寄存器)

  • “a表示后續的操作在a寄存器中操作

  • “ayy復制當前行,到a寄存器

  • 3“ayy表示復制3行到a寄存器中

  • 默認情況使用的是無命名寄存器

“ap粘貼a寄存器的內容到當前航

編輯完成后

  • :x= 相當于:wq,但是盡量別用x,因為x的使用,會產生不安全因素

  • ZZ 存盤退出

  • ZQ 不存盤退出

  • :w /path 存內容到path文件,vim打開的文件不會變。

多窗口模式

打開方法

- vim file1 file2 file3
- vim -o 打開橫向
- vim -O 打開多個豎向
- vim -p 打開多個tag

切換方法

  • 命令模式:c+w+向下

  • 命令模式:c+w+向上

  • :next

  • :prev

  • :last

  • :first

  • :wqall

  • c+w+v 左右

  • c+w+s 上下

關閉窗口

  • c+w+q取消相鄰窗口。

  • c+w+o取消全部其他窗口

模式轉換

  • a 追加模式,在當前光標所在字符之后插入(光標跳到當前字符之后的一個字符,并進入INSERT模式)

    • 如果當前行包含一個字符(即使是空白字符也可以),在該字符之后插入

    • 如果當前行為空白行(連空白字符都沒有,直接就是回車),直接插入

  • A 光標到當前行最后一個字符

  • i 光標位置不變,在當前光標之前插入

  • I 光標自動跳到行首

  • o 在當前行后,新建一行

  • O 在當前行前,插入一行

  • R 進入替換模式,會將光標所在位置的字符替換為輸入字符

  • r 單字符替換模式,只替換一次

other notes:

  • vim打開passwd文件或者其他文件,經常會有額外的提示

    這種現象的原因往往是上次使用該文件的時候異常退出導致的。這種異常退出,會使原本打開時生成的緩存文件.passwd.swap文件,沒有被正常刪除。 
    只要刪除了隱藏文件.filename.swqp就可以了

  • 關于vim打開文件后的各種顏色

    在/etc/文件下打開文件,一般都是有顏色的。vim會自動給那些它認為有意義的文件顏色。這些文件,要么是有結尾標識(比如.sh),要么在文件中有標識(比如#!/bin/bash),要么在特定的文件夾下面(比如/etc/下通常被識別為配置文件)。如下:


vim.2.pngvim.3.png

原創文章,作者:m20-吳清玲,如若轉載,請注明出處:http://www.www58058.com/36414

(0)
m20-吳清玲m20-吳清玲
上一篇 2016-08-18
下一篇 2016-08-18

相關推薦

  • iptables/netfilter從入門到進階(Blog 17)

    博客作業:iptables/netfilter入門到進階;

    2017-12-20
  • 設計模式原則詳解

        我們在應用程序開發中,一般要求盡量兩做到可維護性和可復用性。       應用程序的復用可以提高應用程序的開發效率和質量,節約開發成本,恰當的復用還可以改善系統的可維護性。而在面向對象的設計里面,可維護性復用都是以面向對象設計原則為基礎的,這些設計原則首先都是復用的原則,遵循這些設…

    Linux干貨 2015-04-07
  • linux學習筆記: grep命令,正則表達式

    linux學習筆記:grep命令,正則表達式 linux運維筆記 簡介 grep命令是一個最初用于Unix操作系統的命令行工具,在給出文件列表或者標準輸入之后,grep會對匹配一個或者多個正則表達式的文本進行搜索,并且只輸出匹配或者不匹配的行或者文本。(參見維基百科)  正則表達式是計算機科學的一個概念,正則表達式使用單個字符串…

    Linux干貨 2017-04-07
  • 細說CP使用

    cp詳細用法和常用選項

    Linux干貨 2017-11-26
  • 【26期】Linux第七周學習小總結

        今天給大家的分享是本周的一個有趣的小內容,LVM邏輯卷相關的,為什么分享這個內容呢?主要是剛沒有接觸或者說深入接觸Linux時,有人在群里提問,如果不用虛擬機,那Centos本身有快照嗎?當時說的答案很熱鬧,不過大部分還是傾向于沒有快照,本周學習的邏輯卷管理器章節里,就這個問題給了一個準確答案,那我們一起來看一下吧!  …

    2017-08-26
  • 關于VIM編輯器

                                                      &nbsp…

    系統運維 2016-08-11
欧美性久久久久