Linux 命令行——vim 的基本操作和高级操作

I/O重定向

      • 1. vim 基础
      • 2. 进阶编辑:使用 u 可以撤销上次编辑

本文摘录自 Linux 命令行

1. vim 基础

在可视化编辑流行的时代为什么要学习 vi 呢?1. 如果没有图形化界面,vi 就派上了用场;2. vi 轻量级且执行快,相比启动图形文本编辑器,再等待其数倍兆字节的数据加载而言,vi 太容易了。3. 一名熟练的 vi 用户无需使用鼠标就可完成编辑

  1. 启动和退出:vi 文件:启动;:q:退出,但是 vi 并没有真正退出,比如我们对文件做了修改但没有保存的时候就会阻止其真正退出。而给命令加上感叹号就可以真正退出::q!

  2. 编辑

    1.    # 确保没有要操作的文件
         localhost:2020-01 chappyzhao$ rm -f foo.txt
         # vi 创建新文件的方法
         localhost:2020-01 chappyzhao$ vi foo.txt
      
    2. 插入模式:i摁下 i 键即实现了 insert 功能,退出编辑模式重新进入命令模式,摁下esc即可。
    3. 保存::w:将修改写入磁盘、
    4. vim 中移动光标:
    按键 光标移动
    0(零按键) 移动到当前行的行首
    ^ 移动到当前行的第一个非空字符
    $ 移动到当前行的末尾
    w 移动到下一个单词或标点符号的开头
    W 移动到下一个单词的开头,忽略标点符号
    Ctrl+f 向下翻一页
    Ctrl+b 向上翻一页
    numberG 移动到第 number 行。如:1G 移动到文件的第一行
    G 移动到文件末尾

2. 进阶编辑:使用 u 可以撤销上次编辑

  1. 追加文本:vim 有几种进入编辑模式的方法。A可以将光标直接定位到行尾并进入编辑模式。
  2. 打开一行:小写 o :当前行的下方另起一行;大写 O:当前行的上方另起一行。
  3. 删除文本
命令 删除的文本
x 当前字符
dd 当前行
d$ 当前位置到当前行尾
d0 当前位置到当前行首
dG 当前行到文件的末尾
  1. 剪切、复制和粘贴文本
    1. 剪切:d 命令不仅删除文本,它同时也剪切文本。当我们使用 d 命令的时候,删除的部分被复制到一个粘贴缓冲区中(看作剪切板),粘贴时使用小 p 可以把剪切板中的文本粘贴到光标位置之后,或者大 P 粘贴到光标之前。
    2. 复制:y 命令用来复制文本,和 d 剪切的方式差不多。
    命令 复制内容
    yy 整行文本
    5yy 本行和下面的四行
    y$ 从光标到本行的结尾
    yG 从当前行到文本末尾
    y20G 从当前行到文件的第20行
    1. 粘贴:p
    2. 查找和替换:vim 能把光标移到搜索到的匹配项上,它可以在单行搜索,也可以进行全文搜索。也可以在用户确认与否的情况下进行文本替换。
      1. 搜索单行:f 命令可以搜索一特定行,并将光标移动到下一个匹配的字符上。如:fa 命令会把光标定位到同一行中下一个出现 ‘a’ 的位置,且在进行一次搜索后,输入分号就能重复这次搜索。大前提,搜索从头开始才能匹配
      2. 查找整个文件:使用 / 命令,会移动光标到下一个出现的单词或短语上。当你输入 / 后,屏幕底部就可以输入查找内容。通过n命令重复先前的查找。
      3. 全局查找和替换:vim 使用 ex 命令来执行查找和替换操作。如:将文件中的“line” 替换为“Line”::%s/line/Line/g:冒号后面运行一个 ex 命令;% 指定要操作的行数,%代表从第一行到最后一行。1,5 代表1-5行;s 指定操作-替换;/ine/INE 查找和替换类型;g 全局global的意思,省略 g,则只替换每个文本行的第一个匹配的字符串,gc 则表示替换会需要用户确认。
    3. 编辑多个文件:同时能够编辑多个文件是很有用的。你可能需要更改多个文件或从一个文件复制内容到另一个文件。通过 vim 我们可以打开多个文件进行编辑:vi file1 file2...
# 获取 ls 的输出到一个文件中,同时也是创建这个文件。 
ls -l /usr/bin > ls-output.txt
# 查询
localhost:2020-01 chappyzhao$ ls 
1		5		8		ls-output.txt
2		6		9		two words.txt
3		7		foo.txt		{4}
# 同时编辑多个文件,回车后会显示第一个文件内容,按键 :n 可以显示下一个;:N 显示上一个;查看正在编辑的文件列表 :buffers ;选择第 n 个文件 :buffer n 
vi foo.txt ls-output.txt
	2. 打开另一个文件并编辑
vi foo.txt
# 要加入第二个文件,输入
:e ls-output.txt
 # 此刻查看所有文件。使用了 e 就不能用 n/N 来切换文件了,只能用 :buffer ➕ 文件缓冲区号
:buffers
	3. 跨文件复制粘贴:当我们编辑多个文件时,经常需要将一个文件的内容复制到另一个文件中,通过前面我们学过 y(yank拉)和 p 命令就可以完成。
  1. 保存工作:像 vim 中的其他操作一样,我们已经知道 :w 可以保存,但还有其他方法。如:在命令模式下,输入 ZZ 就可以保存并退出。

你可能感兴趣的:(linux,linux,vim,ide)