Linux 基础知识(3)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/God_XiangYu/article/details/80400896

第三章:Vi和Vim 编辑器

3.1 vi 和 vim 基本介绍

所有的 Linux 系统都会内建 vi 文本编辑器

Vim 具有程序编辑的能力,可以看做是Vi 的增加版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译以及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

- 3.2 vi 和 vim 的三种常见模式
- 3.2.1 正常模式

    在正常模式下,我们可以使用快捷键
    以 vim 打开一个档案就直接入一般模式了(这是默认的模式)。在这个模式中,你可以使用[上下左右]按键来移动光标,你可以使用[删除字符]或[删除整行]来处理档案内容,也可以[复制、贴上]来处理你的文件数据

- 3.2.2 插入模式

    在插入模式下,程序员可以输入内容。
    按下i,I,o,O,a,A,r,R 等任何一个字母之后才会进入编辑模式,一般来说按i即可

- 3.2.2 命令行模式

    在命令行模式当中,可以提供你相关指令,完成读取、存盘、替换、离开 vim、显示行号等的动作则是在此模式中达成的!
  • vi 和 vim 三种相互切换

  • 3.3快捷键的使用案例

    • (1) 拷贝当前行 yy,拷贝当前行向下的5行 5yy,并粘贴(p)
    • (2) 删除当前行 dd ,删除当前行向下的5行 5dd
    • (3) 在文件中查找某个单词[命令行下 /关键字,回车查找,输入n 就是查找下一个]
    • (4) 设置文件的行号,取消文件的行号:[命令行下 :set nu 和 :set nonu]
    • (5) 编辑 /etc/xxx 文件,使用快捷键到底文档的最末行[G]和最首行[gg](注意这些都是在正常模式下执行的)
    • (6) 在一个文件中输入”Hello”,然后又撤销这个动作 ,在正常模式下输入 u
    • (7) 编辑 /etc/xxx 文件,并将光标移动到 20行 shift+g

    第一步:显示行号 :set nu
    第二步: 输入20这个数
    第三步:输入 shift + g

    • vim 和 vi 快捷键盘一览图

一、       一般模式:
1、移动光标
h: 左移
l: 右移
j: 下移动
k: 上移动
0 or Home: 移动光标到行末
$ or End: 移动光标到行头
Page Up:上一页。
Page Down:下一页。
Home:一行最前。
End:一行末尾。   
H: 光标移动到屏幕最上方的行头
L:光标移动到屏幕最下方的行头
G: 光标移动到文件最后一行行头
nG: 输入行数n,然后输入G,则光标移动到文件第多少行
gg: 移动这个文件第一行,等价于1G
n[Enter]: 光标向下移动多少行,5按回车,在当前行数上+5.

2、翻页
[ctrl+f]: 下翻一页 等价于 PageDown
[ctrl+b]: 上翻一页等价于 PageUp
[ctrl+d]: 下翻半页
[ctrl+u]: 上翻半页

3、查询 & 替换
/word: 向下查询word
?word: 向上查询word
n: 向下继续查找word
N: 反向继续查找word
:num1,num2s/word1/word2/g:在num1行到num2行将word1 替换成word2
:1,$ s/word1/word2/g: 在1行到最后1行查找word1,并将word1 替换成word2,替换不需要用户确认
:1,$ s/word1/word2/gc: 在1行到最后1行查找word1,并将word1 替换成word2,替换需要用户确认
:set nu: 设置行号
:set nonu: 不设置行号

4、增删行或者字符
x: 向后删除一个字符
X: 向前删除一个字符
nx|nX: 连续删除n个字符
dd: 删除光标一整行
ndd: 删除光标之下n行
dG: 删除光标所在到最后一行数据
d1G: 删除光标所在到第一行的数据
d$: 删除光标所在到该行最末的字符
d0: 删除光标所在到所在行第一个字符之间的字符

5、复制,粘贴
yy:复制光标所在行
nyy: 复制光标之下n行
yG: 复制光标所在到最后一行数据
u: 撤销上一步的操作
[ctrl+r]: 上一步的操作再做一次
y1G: 复制光标所在到第一行的数据
y$: 复制光标所在到该行最末的字符
y0: 复制光标所在到所在行第一个字符之间的字符
p: 将复制的数据在光标下一行粘贴
P:将复制的数据在光标上一行粘贴

二、       编辑模式
:w: 保存写入磁盘
:w! 强制写入
:q: 退出vi
:q!: 强制离开不保存文件
:wq: 写入磁盘,保存并离开
ZZ: 如果没有更新,不保存离开,如果有更新,保存离开
:w [filename] 编辑的数据保存为另外一个文件,相当于另存为
:r [filename] 在编辑的数据后,读入file,加载数据后面
:num1,num2 :w [filename] : num1行到num2行的数据另存为某一个文件   

猜你喜欢

转载自blog.csdn.net/God_XiangYu/article/details/80400896