学习中心/工程实践/Linux/Linux 4:Vim,改一段不用鼠标

· Linux · 4 · 编辑

Linux 4:Vim,改一段不用鼠标

dw、ciw、可视、/ 和 n、:%s、. 重复。不要删整行再打。

正在加载录音…

改一段,不要删整行再打

进出会了。这一节是改得动:动作 + 范围、可视、查找替换、重复。改 nginx 配置、改 unit,应该不用鼠标,也不用把一行删掉重敲。

  1. 动作d c y
  2. 范围w $ iw
  3. 找/ n
  4. 替:s

1. 动作加范围

Normal 里多数改动是「干什么 + 动到哪」。d 删,c 改(删完进 Insert),y 复制。后面跟一个动作:w 到下一个词,$ 到行尾。

  • 键
    删到下一个词。de 删到这个词尾dw
  • 键
    删到行尾。D 是同一件事d$
  • 键
    改这个词。删完已经在 Insertcw
  • 键
    改光标所在这个词,不含周围空格。改配置项常用ciw
  • 键
    删整行。cc 改整行,yy 复制整行dd

前面可以加数字:3dd 三行,2cw 两个词。先想范围,再按动作。

2. 可视

  • 键
    按字符选。再 hjkl 或 w 扩选,然后 d / y / cv
  • 键
    按行选。搬一块配置用这个V
  • 键
    按列选。改一列注释时才用,先不必熟Ctrl+v

选错了 Esc。选完 > 整块缩进,< 反缩进。= 按语法粗排,对配置文件有时管用。

3. 行内跳

  • 键
    本行向右跳到下一个分号。F 反方向。; 重复,, 反向重复f;
  • 键
    跳到 ) 的前一个字符。改括号里的参数常用t)
  • 键
    在配对的 () {} [] 之间跳。先把光标放在其中一个上%

4. 查找

  • 令
    向下找。回车后 n 下一个,N 上一个/listen
  • 令
    向上找?listen
  • 键
    找光标下这个词。# 向上*

找不到会回卷到文件头,左下角会提示。:set hlsearch 高亮命中,:noh 暂时关掉高亮。:set ignorecase 大小写不敏感,配 :set smartcase 更好:全小写才忽略大小写。

5. 替换

  • 令
    只改当前行第一处:s/old/new/
  • 令
    当前行全部:s/old/new/g
  • 令
    全文。c 是每一处问你。先 c,确认再去掉:%s/old/new/gc

斜杠在内容里就换分隔符::s#/var/www#/opt/app#g。替换前先 /old 看会命中谁。Vim 的正则和 grep 不完全一样,先当「普通字」用。

6. 重复

  • 键
    重复上一次改动。cw 改一个词,到下一处再 ..
  • 键
    替换光标这一个字符,仍留在 Normal。R 是连续替换r
  • 键
    把下一行接到这一行后面J

. 比宏轻。同一处改法要做十次,先做好一次,n 找到下一处,再 .

7. 缩进和注释

  • 键
    这行右移一档。<< 左移。前面加数字:4>>>>
  • 键
    若装了注释插件才有。没有就 V 选中,I# Esc。先会可视再 Igcc

不要在这一节装插件。# 或 // 用可视块 Ctrl+v 选列,I 插入,Esc 一次填一列,这已经够改配置。

这块过关:ciw、d$、/ 加 n、:%s 带 c、. 能重复。下一节才是多文件、宏、vimrc。

同模块

工程实践 →