ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Ubuntu Server 第 4 讲:Vim 的三种模式与那条替换命令

Ubuntu Server 第 4 讲:Vim 的三种模式与那条替换命令 文章目录Ubuntu Server 第 4 讲:Vim 的三种模式与那条替换命令一、三种模式:看屏幕最后一行就够了二、退出:只有四条命令,`:q!` 是救命的那一条三、挪得动、删得掉、复制得走四、查找与替换:那条最容易漏标志的命令五、把设置留下来:那个多出来的 `#`六、案例:写一个能跑的脚本一句话带走Ubuntu Server 第 4 讲:Vim 的三种模式与那条替换命令Vim 是所有常见工具里唯一一个「按键不等于输入」的程序。你在图形编辑器里按 d,屏幕上就多一个字母 d;在 Vim 里按 d,什么都没出现,它在等你按下一个键,告诉它「d 什么」。这一讲只解决两件事:怎么不出事地进出它,怎么用它把一批文本改对。这一讲只解决三件事。三种模式——命令模式是老家,按 Esc 永远回这儿;插入模式才是打字;底行模式敲冒号。六个键进插入——i光标前、I行首、a光标后、A行尾、o下方开新行、O上方开新行。一条替换命令——:%s/旧/新/g,缺了结尾那个标志,就只换每行第一处。全文命令与 Vim 屏幕都取自一台Ubuntu 24.04.5 LTS实验机(Vim 9.1),每一屏都是实跑快照。一、三种模式:看屏幕最后一行就够了要学会什么:Vim 把「动作」和「输入」分成两个模式。这么设计是因为它诞生在没有鼠标的年代,作者要解决的是「怎么让手不离开字母区完成所有编辑动作」。代价是学习曲线,过了这条曲线,「删掉接下来三行」只需要 3dd 三个键。不用背怎么认,看屏幕最后一行:左下角写着-- INSERT --,你在插入模式;写着-- VISUAL --之类,你在可视模式;最后一行是文件名加一串位置读数,那是命令模式。照着练:下面这六屏什么都不改,只走一遍三个模式,请重点看每一屏的最后一行。ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ vim m.txt ~ "m.txt" [New] 0,0-1 All ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ (按 i) ~ -- INSERT -- 0,1 All ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ (敲 abc 回车) abc ~ -- INSERT -- 2,1 All ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ (按 Esc) abc ~ 2,0-1 All ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ (按冒号) abc ~ :请把「多按几次 Esc」变成条件反射。新手出事的整个过程通常是:按错一个键 → 屏幕上出现奇怪变化 → 慌了继续按 → 局面更乱。正确的反应只有一个:按 Esc,停下来,看一眼最后一行。Esc 在任何模式下都是安全的。进插入模式的六个键,区别只在落笔位置:i光标之前、I整行第一个非空白字符之前、a光标之后、A整行行尾之后、o在下方起新行、O在上方起新行。用得最多的是i和o,a和A是补救时用。记「大小写是一对,大写的都贴到行的两端」就够用了。容易踩的坑:用d键打不出字母 d。这是 Vim 全部门槛的来源——在命令模式里d是删除命令,要「d 什么」才构成一个动作。所以任何时候想「打一个 d 字」,都得先按i。二、退出:只有四条命令,:q!是救命的那一条要学会什么:保存与退出是四条底行命令,两种结局——存了再走,或者干脆别存。:w保存但留在 Vim 里;:q退出,前提是没改过内容;:wq存了再退,日常收尾最常用;:q!不保存强行退出,它是唯一的「紧急出口」,改乱了想推翻重来就用它,但要注意这次改动全丢掉,没有回收站。照着练:先打开一个不存在的文件,Vim 会告诉你[New]——这是个空文件,5L, 50B这样的读数则是行数和字节数。定位到某一行的快捷方式有两种:vim +4 文件让光标直接停在第 4 行(翻日志时特别有用,报错在第 1024 行,你不想从第一行爬上去);vim -R 文件以只读方式打开,这时最后一行会多出一个[read-only],你改得动屏幕上的字,但:w存不回去——接手生产服务器时顺手这么开,能避免手滑改坏。ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ vim open.txt 第一行 第二行 第三行 第四行 第五行 ~ "open.txt" 5L, 50B 1,1 All ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ vim +4 open.txt 第一行 第二行 第三行 第四行 第五行 ~ "open.txt" 5L, 50B 4,1 All ubuntu@hanyw-ubuntu-desk:/tmp/vim6lab$ vim -R open.txt 第一行 第二行 第三行 第四行 第五行 ~ "open.txt" [readonly] 5L, 50B 4,1 All三次打开,最后一行的差别就是全部信息量。另外 Ubuntu 里的vi也指向同一个完整
返回列表