vim 編輯器

\vi: Visual Interface

文本編輯器種類

  • 行編輯器: sed
  • 全屏編輯器: nano, vim

vim: vi improved

使用

vim: 模式化的編輯器

  • 基本模式:

    • 編輯模式
    • 命令模式
    • 輸入模式
  • 打開文件 vim [options] files

    • ** options **
      • +#: 打開文件后柜与,直接讓光標(biāo)處于第#行的行首
      • +/PATTERN: 打開文件后,直接讓光標(biāo)處于第一個(gè)被PATTERN匹配到的行的行首
  • 模式轉(zhuǎn)換

    • 編輯模式 --> 輸入模式
      • i: insert, 在光標(biāo)所在處前面輸入
      • a: append, 在光標(biāo)所在處的后面輸入
      • o: 在當(dāng)前光標(biāo)所在行的下方插入一個(gè)新行
      • I: 在當(dāng)前光標(biāo)所在的行首輸入
      • A: 在當(dāng)前光標(biāo)所在行的行尾輸入
      • O: 在當(dāng)前光標(biāo)所在行的上方插入一個(gè)新行
      • c:
      • C:
    • 輸入模式 --> 編輯模式
      • ESC
    • 編輯模式 --> 命令模式
      • :
    • 命令模式 --> 編輯模式
      • ESC
  • 光標(biāo)跳轉(zhuǎn)

    • 子符間跳轉(zhuǎn):
      • h, j, k, l
        • h: 左
        • j: 下
        • k: 上
        • l: 右
      • #COMMAND: 跳轉(zhuǎn)由#指定的個(gè)數(shù)的字符
    • 單詞間跳轉(zhuǎn):
      • w: 下一個(gè)單詞的詞首
      • e: 當(dāng)前或下一個(gè)單詞的詞尾
      • b: 當(dāng)前或前一個(gè)單詞的詞首
    • 行首行尾跳轉(zhuǎn):
      • ^: 跳轉(zhuǎn)到行首的第一個(gè)空白字符
      • 0: 跳轉(zhuǎn)至行首
      • $: 跳轉(zhuǎn)至行尾
    • 行間移動(dòng):
      • #G: 跳轉(zhuǎn)至由#指定行
      • G: 最后一行
      • 1G,gg: 第一行
    • 句間移動(dòng)
      • ): 往后移動(dòng)一句
      • (: 往前移動(dòng)一句
    • 段落間移動(dòng)
      • }: 向后移動(dòng)一段
      • {: 向前移動(dòng)一段
  • vim的編輯命令

    • 字符編輯

      • x: 刪除光標(biāo)處的字符
      • #x: 刪除光標(biāo)處其實(shí)的第#個(gè)字符
      • xp 交換光標(biāo)所在處的字符及其后面字符的位置

    • 替換命令(r,replace)

      • r: 替換光標(biāo)所在處的字符
    • 刪除命令

      • d: 刪除命令, 可結(jié)合光標(biāo)跳轉(zhuǎn)字符實(shí)現(xiàn)范圍刪除

        • d$: 光標(biāo)一直到行尾的字符
        • d^: 光標(biāo)一直到行首的字符
        • d0:
        • dw
        • de
        • db
          • #command

      • dd: 刪除光標(biāo)所在的行

        • #dd: 多行刪除
      • D: 刪除光標(biāo)所在行的所有字符

    • 粘貼命令(p, put, paste)

      • p: 緩沖區(qū)存的如果為整行, 則粘貼在當(dāng)前光標(biāo)所在的行的下方; 否則, 則粘貼至當(dāng)前光標(biāo)所在處的后面
      • P: 緩沖區(qū)存的如果為整行, 則粘貼在當(dāng)前光標(biāo)所在行的上方; 否則, 則粘貼至當(dāng)前光標(biāo)所在處的前面
    • 復(fù)制命令(y, yank)

      • y: 復(fù)制, 工作行為與d命令相似
        • y$
        • y0
        • y^
        • yw
        • ye
        • yb
          • #yy: 復(fù)制多行

    • 改變命令(c, change)

      • c: 修改
        * 編輯模式 --> 輸入模式
        • c$
        • c^
        • c0
        • cb
        • ce
        • cw
          • #command
        • cc: 刪除并輸入新的內(nèi)容
          • #cc
    • 可視化模式

      • v: 按字符選定
      • V: 按行選定

        Note: 經(jīng)常結(jié)合編輯命令:d c y

    • 撤銷此前的編輯:

      • u(undo): 撤銷此前操作
        • #u: 多次撤銷
    • 撤銷此前的撤銷 Ctrl+r

    • 重復(fù)前一個(gè)編輯操作"."

  • 翻屏操作

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

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

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

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

  • vim中的命令模式

    • (1) 地址定界
      • :start_pos,end_pos)
        • #: 具體第#行, 例如2表示第2行
        • #,#: 從左側(cè)#表示行起始, 到右側(cè)#表示行結(jié)尾
        • #,+#: 從左側(cè)#表示的行起始, 到右側(cè)#+#表示行尾
        • .: 當(dāng)前行
        • $: 最后一行
        • %: 全文, 相當(dāng)于1,$
        • /PATTERN1/,/PATTERN2/: 從第一次被PATTERN1模式匹配到的行開始, 一直到被PATTERN2匹配到的行結(jié)束
          • #,/PATTERN/
          • /PATTERN/,$
      • 使用方式
        • 后跟一個(gè)編輯命令
          • d
          • y
          • w /PATH/TO/SOMEWHERE: 將范圍內(nèi)的行另存至指定文件中
          • r /PATH?FROM/SOMETHERE: 從指定位置插入指定文件中的所有內(nèi)容
    • (2) 查找
      • /PATTERN: 從當(dāng)前光標(biāo)所在處向文件尾部查找
      • ?PATTERN: 從當(dāng)前光標(biāo)所在處向文件首部查找
        • n: 與命令同方向
        • N: 與命令反方向
    • (3) 查找并替換
      • s: 在命令模式下完成查找替換操作
        • s/要查找的內(nèi)容/替換為的內(nèi)容/修飾符
          • 要查找的內(nèi)容, 可使用模式
          • 替換為的內(nèi)容, 不能使用模式, 但是可以使用\1,\2,\3....等后向引用符號(hào),還可以使用&引用前面查找時(shí)查找到的整個(gè)內(nèi)容
          • 修飾符
            • i: 忽略大小寫
            • g: 全局替換 默認(rèn)情況下, 每行只替換第一次出現(xiàn)

        Note: 查找替換中的分割符/可以替換為其他字符例如@,#,

  • 多文件模式

    • vim FILE1 FILE2 FILE3 ...
      • :next 下一個(gè)
      • :prev 前一個(gè)
      • :first 第一個(gè)
      • :last 最后一個(gè)
      • :wall 保存所有
      • :qall 退出所有
  • 窗口分割模式

    • vim -o|-O FILE1 FILE2 ...

      • -o: 水平分割
      • -O: 垂直分割
    • 在窗口間切換: Ctrl+w,arrow|h,j,k,l

    • 單文件窗口分割:

      • Ctrl+w,s: split, 水平分割
      • Ctrl+w,v: vertical, 垂直分割
  • 定制vim的工作特性:

    • 配置文件: 永久有效
      • 全局: /etc/vimrc
      • 個(gè)人: ~/.vimrc
    • 命令模式: 對(duì)當(dāng)前vim進(jìn)程有效
    • (1) 行號(hào):
      • 顯示: set number, 簡(jiǎn)寫為set nu
      • 取消顯示: set nonumber, 簡(jiǎn)寫為set nonu
    • (2) 括號(hào)匹配
      • 匹配: set showmatch, 簡(jiǎn)寫為set sm
      • 取消: set noshowmatch, 簡(jiǎn)寫為set nosm
    • (3) 自動(dòng)縮進(jìn)
      • 啟用: set ai
      • 禁用: set noai
    • (4) 高亮搜索
      • 啟用: set hlsearch
      • 禁用: set nohlsearch
    • (5) 語法高亮
      • 啟用: syntax on
      • 禁用: syntax off
    • (6) 忽略字符的大小寫
      • 啟用: set ic
      • 不忽略: set noic
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末马昙,一起剝皮案震驚了整個(gè)濱河市榄檬,隨后出現(xiàn)的幾起案子卜范,更是在濱河造成了極大的恐慌,老刑警劉巖鹿榜,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件海雪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡犬缨,警方通過查閱死者的電腦和手機(jī)喳魏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怀薛,“玉大人刺彩,你說我怎么就攤上這事。” “怎么了创倔?”我有些...
    開封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵嗡害,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我畦攘,道長(zhǎng)霸妹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任知押,我火速辦了婚禮叹螟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘台盯。我一直安慰自己罢绽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開白布静盅。 她就那樣靜靜地躺著良价,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蒿叠。 梳的紋絲不亂的頭發(fā)上明垢,一...
    開封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音市咽,去河邊找鬼痊银。 笑死,一個(gè)胖子當(dāng)著我的面吹牛魂务,可吹牛的內(nèi)容都是我干的曼验。 我是一名探鬼主播泌射,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼粘姜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了熔酷?” 一聲冷哼從身側(cè)響起孤紧,我...
    開封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拒秘,沒想到半個(gè)月后号显,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躺酒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年押蚤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片羹应。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揽碘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雳刺,我是刑警寧澤劫灶,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站掖桦,受9級(jí)特大地震影響本昏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜枪汪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一涌穆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧雀久,春花似錦蒲犬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巡蘸,卻和暖如春奋隶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悦荒。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工唯欣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搬味。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓境氢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親碰纬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子萍聊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 自我總結(jié)篇: 對(duì)文件的操作技巧: vim文件一個(gè)有三種狀態(tài):命令(瀏覽/輸入命令轉(zhuǎn)變末行模式),文本(添加/編輯/...
    小知大知閱讀 800評(píng)論 0 0
  • vim 選擇文本悦析,刪除寿桨,復(fù)制,粘貼 文本的選擇强戴,對(duì)于編輯器來說亭螟,是很基本的東西,也經(jīng)常被用到骑歹,總結(jié)如下: v 從...
    壹首簡(jiǎn)單的歌閱讀 881評(píng)論 0 7
  • vim 選擇文本预烙,刪除,復(fù)制道媚,粘貼 文本的選擇扁掸,對(duì)于編輯器來說欢嘿,是很基本的東西,也經(jīng)常被用到也糊,總結(jié)如下: v 從光...
    超__越閱讀 1,292評(píng)論 0 0
  • 在命令狀態(tài)下對(duì)當(dāng)前行用== (連按=兩次), 或?qū)Χ嘈杏胣==(n是自然數(shù))表示自動(dòng)縮進(jìn)從當(dāng)前行起的下面n行炼蹦。你可...
    三十兒閱讀 420評(píng)論 0 1
  • 本文摘自https://www.cnblogs.com/yangjig/p/6014198.html 感謝原作者的...
    榮子3507閱讀 329評(píng)論 1 0