学习中心/工程实践/Linux/Linux 3:Vim,先能进出

· Linux · 3 · Vim

Linux 3:Vim,先能进出

三个模式。i 和 Esc。:wq。卡住了连按 Esc。下一节才改一段。

正在加载录音…

Vim 先解决一件事:进得去,出得来

服务器上 nano 能应急。日常改配置、改代码,Vim 是还在的那个编辑器。这一节只解决进出:模式、动光标、删一行、存盘、离开。卡住了先连按几下 Esc。

  1. 开vim 文件
  2. 改i … Esc
  3. 动hjkl / w b
  4. 走:wq

1. 打开

  • 开
    没有这个文件就新建。有就打开vim notes.txt
  • 开
    打开并跳到第 20 行vim +20 /etc/hosts
  • 练
    自带教程,二十来分钟。有就先跑一遍vimtutor

有的镜像只有 vi 或 vim.tiny,功能少。能装再:sudo apt install vim。vim --version 第一行若写 Tiny,先换包。

2. 三个模式

Normal:动光标、删、复制。打开后就在这。Insert:打字。Command:冒号后面下命令。左下角出现 -- INSERT -- 就是在 Insert。没有这几个字,就是 Normal。

  • 进
    在光标前插入。a 是光标后,o 是下一行新开一行i
  • 回
    回 Normal。迷路了连按两下Esc
  • 令
    进命令行。Esc 也能从这里回来:

I 行首插,A 行尾插,O 上一行新开。先记住 i 和 Esc,其余用到再加。

3. 动

  • 键
    左下上右。方向键也能用,SSH 卡的时候 hjkl 更稳h j k l
  • 键
    w 下一个词,b 上一个,e 词尾w b e
  • 键
    0 行首,^ 第一个非空字符,$ 行尾0 ^ $
  • 键
    gg 文件头,G 文件尾。42G 到第 42 行gg G

Ctrl+f / Ctrl+b 翻页。Ctrl+d / Ctrl+u 半页。先会 gg、G、w,翻长文件够用。

4. 删、复制、粘贴、撤

  • 键
    删光标下这一个字符x
  • 键
    删这一行。yy 复制这一行dd
  • 键
    粘贴到光标后。P 是光标前p
  • 键
    撤。Ctrl+r 是反撤u

Vim 的剪贴板默认是它自己的,不是系统的。yy 再 p 在 Vim 里走。终端里用鼠标贴,先看第 4 节的 paste。

5. 存、退

  • 令
    存。不退:w
  • 令
    没改过就退。改过会拒绝,用 :wq 或 :q!:q
  • 令
    存并退。ZZ 是同一件事,不用打冒号:wq
  • 令
    丢改动,退。确定不要了才用:q!
  • 令
    另存一份。系统文件先这样,再考虑覆盖:w notes.bak

只读文件存不上:先 :w ~/notes.bak,不要跟权限死磕。sudo vim 能写系统文件,改之前仍要先 cp 一份。

6. 卡在里面时

  • 左下角 -- INSERT --:Esc 回到 Normal,再 :wq 或 :q!。
  • 左下角有个 ::这是命令行。Esc 取消,或把命令敲完回车。
  • 屏幕在刷 ~ 而且打字没反应:你在 Normal。按 i 再打。
  • 复制终端里的字贴进来错乱:先 :set paste,贴完 :set nopaste。
  • 怎么都退不出:Esc,然后 :q!。文件还在磁盘上,没存的改动会丢。

7. 看一眼再改

  • 令
    行号。改配置时好说「第几行」:set number
  • 键
    当前文件名、行号、大概位置Ctrl+g

这块过关:能打开、i 改一行、Esc、:wq 离开。不会因为退不出而杀终端。下一节才是改一段、不用鼠标。

同模块

工程实践 →