编辑文件
编辑文件常用的方式为预装的 vim 和可能预装的更专注于文本编辑的 nano;
- nano 适合新手和需要快速简单编辑的用户
- vim 适合开发者、系统管理员、需要长时间进行文件操作的专业用户
vim
追求编辑效率和强大功能,学习曲线陡峭
核心概念:模式
Vim 与其他编辑器最大的不同在于其模式概念。你总是在某种模式下工作,不同模式下敲击同一个键的效果完全不同。这是新手最需要适应的地方。
主要模式有:
- 正常模式 (Normal Mode):也称为命令模式。这是 Vim 的默认模式和核心。在此模式下,你可以移动光标、复制、粘贴、删除、搜索等。你大部分时间都应该待在这个模式下,只有需要输入文本时才进入插入模式。
- 插入模式 (Insert Mode):在这个模式下,你可以像在普通编辑器(如 Notepad, Nano)中一样输入和编辑文本。
- 可视模式 (Visual Mode):类似于用鼠标选择文本,但完全用键盘操作。
- 命令行模式 (Command-Line Mode):用于执行保存、退出、搜索替换等高级命令。
退出
这可能是最重要的部分。很多新手打开 Vim 后不知道如何退出。
- 打开文件:vim filename.txt
- 进入插入模式(开始打字):按下 i键。此时底部会显示-- INSERT --,现在你可以正常输入文字了。
- 返回正常模式(停止打字):按下 Esc键。无论你在什么模式下,按Esc总能让你回到安全港——正常模式。
- 保存文件:在正常模式下,输入 :w然后按Enter。(:会带你进入命令行模式,w代表 write)
- 退出 Vim:在正常模式下,输入 :q然后按Enter。(q代表 quit)
- 保存并退出:在正常模式下,输入 :wq然后按Enter。
- 不保存强制退出!:如果你搞砸了,想放弃所有修改,在正常模式下输入 :q!然后按Enter。(!代表强制)
记住这个序列就能保命:i -> 打字 -> Esc -> :wq -> Enter
移动光标(正常模式下)
在正常模式下,你不能用方向键吗?当然可以,但效率低下。Vim 的设计让你手不离主键盘区。
- 基本移动:
- h- 左
- j- 下
- k- 上
- l- 右
 
- 以词为单位移动:
- w- 跳到下一个单词的词首
- b- 跳到上一个单词的词首
- e- 跳到当前或下一个单词的词尾
 
- 行内移动:
- 0- 跳到行首
- $- 跳到行尾
- ^- 跳到行首第一个非空白字符
 
- 跨行移动:
- gg- 跳到文件第一行
- G- 跳到文件最后一行
- 5G- 跳到第 5 行
- Ctrl + f- 向下翻页
- Ctrl + b- 向上翻页
 
基础编辑(正常模式 -> 操作命令)
Vim 的编辑哲学是 操作符 + 动作 = 行为。
- 
删除 - x- 删除光标下的字符
- dw- delete word(从光标处删除至下一个词首)
- dd- 删除当前整行
- 5dd- 删除从当前行开始的 5 行
- d$- 从光标处删除至行尾
 
- 
复制 (Yank) 与粘贴 - yy- 复制当前整行
- yw- 复制一个词
- p- 在光标后粘贴
- P- 在光标前粘贴
 
- 
撤销与重做 - u- undo 撤销
- Ctrl + r- redo 重做
 
- 
进入插入模式的几种方式 - i- 在光标前插入
- a- 在光标后追加
- I- 在行首插入
- A- 在行尾追加
- o- 在当前行下方打开新行并插入
- O- 在当前行上方打开新行并插入
 
搜索与替换
- 
搜索: - /pattern- 向后搜索- pattern,按- n跳转到下一个匹配项,按- N上一个。
- ?pattern- 向前搜索。
- 搜索后按 Enter开始。
 
- 
替换(命令行模式): - :%s/old/new/g- 将文件中所有的- old替换为- new。- %- 代表所有行
- s- 替换
- g- 一行内的所有匹配项(全局)
 
- :10,20s/old/new/g- 只替换第 10 到 20 行。
 
学习路径与建议
- 不要死记硬背:先记住生存命令(i,Esc,:wq)。
- 使用内置教程:在终端输入 vimtutor。这是官方提供的交互式教程,花 30 分钟 完成它,效果远超阅读任何文章。
- 强制练习:在接下来的一周里,强迫自己用 Vim 完成所有的文本编辑工作(即使是简单的配置文件)。遇到不会的操作就先查本文或搜索引擎。
- 循序渐进:一次只学一两个新命令。例如,今天专门练习用 dd和p来删除和粘贴行,明天练习用dw和w。
- 理解哲学:记住 操作符 (d, y) + 动作 (w, $, G) = 行为。你会发现命令是可以组合的,例如dG(删除到文件末尾)、y$(复制到行尾)。
Vim 的强大远不止于此,还有宏、分屏、插件管理器、代码补全等高级功能。
nano
nano:追求简单易用,开箱即用
打开和创建文件
基本命令格式是 nano [选项] [文件名]。
打开一个已存在的文件
nano filename.txt
如果 filename.txt 存在,则打开它;如果不存在,则创建它。
以只读模式打开文件(防止意外修改)
nano -v filename.txt
或者
nano --view filename.txt
- 创建新文件:直接使用新文件名即可。
nano new_file.txt
界面介绍
打开 nano 后,你会看到类似以下的界面:
GNU nano 6.2          /home/user/example.txt
[这里是你文件的内容]
^G 帮助      ^O 写入      ^W 搜索      ^K 剪切      ^J 对齐      ^C 位置
^X 退出      ^R 读入文件  ^\ 替换      ^U 粘贴      ^T 检查      ^_ 跳行
- 顶部:显示 nano版本和当前编辑的文件路径。
- 中部:文本编辑区域。
- 底部:两行最重要的快捷方式提示栏。^符号代表 Ctrl 键。
基本操作和常用快捷键
nano 的操作主要依靠键盘快捷键,这些快捷键通常通过 Ctrl 键(在提示栏中显示为 ^)或 Alt 键(在提示栏中显示为 M-)来触发。
核心操作
保存 (Write Out)
使用 Ctrl + O (^O)
- 按下后,底部会询问文件名,直接按 Enter以当前文件名保存
- 如果你想另存为新文件,此时输入新文件名再按 Enter
退出 (Exit)
使用 Ctrl + X (^X) 执行退出。如果你修改了文件但没有保存,nano 会问你是否要保存修改
- 按 Y:是,保存并退出。(如果是新文件,会提示你输入文件名)
- 按 N:否,放弃所有修改并退出。
- 按 Ctrl + C:取消,返回编辑器。
获取帮助 (Help)
使用 Ctrl + G (^G) 显示所有快捷键的帮助文档,按 Ctrl + X 可以返回。
编辑操作
剪切整行 (Cut)
使用 Ctrl + K (^K)  将光标所在的一整行内容剪切到剪贴板。
粘贴 (Paste)
使用 Ctrl + U (^U) 将剪贴板的内容粘贴到光标所在位置。
选择文本
- 先按 Alt + A(或Ctrl + ^,取决于版本)来设置标记。
- 然后使用方向键移动光标来选择文本区域。
- 选中后,可以使用 Ctrl + K来剪切选中的部分(而不再是整行)。
- 同样使用 Ctrl + U来粘贴。
撤销 (Undo)
使用 Alt + U (M-U)
重做 (Redo)
使用 Alt + E (M-E)
光标移动和搜索
移动光标
使用方向键 (↑, ↓, ←, →)
跳到行首/行尾
- Ctrl + A:跳到行首
- Ctrl + E:跳到行尾
跳到文件开头
使用 Alt + \ (M-\) 或 Alt + / (M-/)
跳到文件结尾
使用 Alt + / (M-/) 或 Alt + \ (M-\) (取决于版本)
搜索 (Where Is) Ctrl + W (^W)
- 按下后,在底部输入要搜索的词,按 Enter开始搜索。
- 找到后,光标会停在第一个匹配项。按 Alt + W可以跳到下一个匹配项。
搜索并替换 (Replace) Ctrl + \ (^\)
- 输入要搜索的词语。
- 输入要替换成的词语。
- 它会询问是否替换当前匹配项 (Y/N),或者全部替换 (A)。
实用技巧和选项
显示行号
启动时加上 -l 选项。
nano -l filename.txt
或者在编辑器内按 Alt + N 来切换显示行号。
自动缩进
在编写代码时非常有用。在编辑器内按 Alt + M 可以开启或关闭此功能。
在特定行号打开文件
nano +line_number filename.txt
例如 nano +10 my_script.sh 会直接在 my_script.sh 的第 10 行打开它。
匹配括号
当光标在 (, {, [ 上时,按 Alt + ] 可以将光标跳到匹配的闭合括号上。
总结
对于初学者来说,只需记住三个最关键的快捷键就能开始使用 nano:
- Ctrl + O:Out - 保存
- Ctrl + X:Xit - 退出
- Ctrl + G:Get Help - 忘记时随时求助
nano 的设计初衷就是简单直观,底部的提示栏时刻为你提供帮助,这使得它成为在终端中快速编辑配置文件或写简单脚本的绝佳选择。