Linux-Vim相关

vi/vim

打开文件

 1 vim [option] .... file....
 2 
 3 ```
 4 +# 直接定位到第#行
 5 +/pattern 打开文件后,直接定位到第一个匹配到patter的地方
 6 -b 以二进制方式打开文件
 7 -d file1 file2 对比打开多个文件
 8 -m file 只读方式打开文件
 9 -e 直接以末行模式打开
10 ```

模式

1 - 命令模式:可以光标,可以粘贴、复制文本,默认
2 - 插入模式或者编辑模式:可以修改文本
3 - 末行模式(扩展命令模式):保存、退出等等
4 - esc 退出当前的模式

模式之间切换

 1 - 命令模式- 插入模式
 2     - i 光标所在处插入
 3     - I 在当前光标所在的行的行首插入
 4     - a 光标所在位置的后面插入
 5     - A 在当前光标所在的行尾插入
 6     - o 在当前光标所在的行的下一行(新开)插入
 7     - O 在当前光标所在的行的上一行(新开一行)插入
 8 - 插入模式- 命令模式
 9     - esc
10 - 命令模式 -- 末行模式
11     -12 - 末行模式 -- 命令模式
13     - esc esc
14     - esc enter

关闭文件

 1 - 末行模式
 2 - :w 保存
 3 - :q 退出
 4 - :wq 保存并退出
 5 - :q! 强制退出
 6 - :wq!强制保存退出
 7 - :x 保存并退出
 8 - 命令模式
 9 - ZZ 保存退出
10 - ZQ 不保存退出

扩展命令行模式

 1 - 按":" 来进入
 2 - w 写入
 3 - q 退出
 4 - wq 保存并退出
 5 - q! 强制退出
 6 - x 保存并退出
 7 - r file 读入文件
 8 - w file 另存为
 9 - !command 直接执行命令
10 - r!command 直接把命令的结果写到文件中

命令模式跳转

 1 - 字符之间跳转
 2     - l 向右
 3     - h 向左
 4     - j 向下
 5     - k 向上
 6 - 单词间跳转
 7     - w 下一次的单词的词首
 8     - e 当前词的词尾或者下一个单词的词尾
 9     - b 当前词的词首或者上一词的词首
10     - # command 直接跳转#个单词
11 - 页面间跳转
12     - H 页首
13     - L 页尾
14     - M 页中
15     - zt 将光标所在行移动到屏幕的顶端
16     - zb 将光标所在行移动到屏幕的底部
17     - zz 将光标所在行移动到屏幕的中间
18 - 行首行尾之间跳转
19     - ^ 跳转到当前光标所在行的第一个非空字符
20     - 0(数字) 跳转到行首
21     - $ 跳转到行尾
22 - 行间移动
23     - #G 跳转到第#行
24     - 在命令扩展模式下,直接:# 跳转到对应的行
25     - G 直接到最后一行
26     - gg 跳转到第一行
27     - 1G 跳转到第一行
28 - 段落之间跳转(空行)
29     - { 上一段
30     - } 下一段
31 - 翻屏
32     - ctrl+f 向文件尾部翻一屏
33     - ctrl+b 向文件首部翻一屏
34     - ctrl+d 向文件尾部翻半屏
35     - ctrl+u 向文件首部翻半屏    

命令模式编辑

 1 - 字符编辑
 2     - x 删除光标所在处的字符
 3     - #x 删除#个字符
 4     - xp 将光标所在处的字符和后面的字符互换位置
 5     - ~ 将光标所在的位置大小写互换
 6     - J 删除当前行的换行符
 7 - 替换
 8     - r 替换当前光标所在处的字符
 9     - R 进入替换模式
10 - 删除
11     - d 删除,需要跟字符跳转结合
12     - d$ 删除到行尾,删除当前位置
13     - d0 删除到行首,当前位置不删除
14     - d^ 删除到非空字符
15     - dw 删除一个单词
16     - de 向后删除一个单词
17     - db 向前删除一个单词
18     - dd 删除正行
19     - # dd 删除#行
20     - dG 删除到结尾
21     - dgg 删除到开头
22     - D 相当于d$
23 - 复制
24     - y,也可以跟字符跳转结合
25     - y$
26     - y0
27     - y^
28     - yw
29     - ye
30     - yb
31     - yy 一正行
32     - #yy 复制#行
33     - yG 复制到结尾
34     - ygg 复制到开头
35     - Y 复制整行
36 - 粘贴
37     - p 如果是整行的话,则粘贴到当前光标所在行的下一行,否则粘贴到光标的后面
38     - P 如果是整行的话,则粘贴到当前光标所在行的上一行,否则粘贴到光标的前面
39 - 改变,删除以后并将模式切换成插入模式
40     - c 可以跟光标的跳转做结合
41     - c$
42     - c0
43     - c^
44     - cw
45     - ce
46     - cb
47     - #command
48     - cc 删除正行并插入
49     - C 相当于c$
50 - #[i|I|a|A|o|O]string esc 将string粘贴#次
51 - 搜索
52     - /pattern 从当前光标往下搜索
53     - ?pattern 从当前光标往上搜索
54     - n 同命令相同的方向
55     - N 同命令相反的方向
56 - 撤销
57     - u 撤销最近的修改
58     - # u 撤销最近的#次修改
59     - ctrl +r 撤销之前的撤销动作
60     - . 重复最后一次操作 
61     - #. 最后一次操作重复执行#次        

命令扩展模式

 1 地址定界
 2 :start,end
 3 # 具体到第#行
 4 #,# 第#行到第#行
 5 #,+n 从第#开始,到第#+n行结束 1,+2 ==>1,3
 6 . 表示当前光标所在的行
 7 $ 表示最后一行
 8 $-1 表示倒数第二行
 9 % 表示全文
10 /pat1/,/pat2/ 从第一个pat1匹配到的地方,到pat2第一次匹配到的地方
11 #,/pat/ 从第#行开始,到第一次被pat匹配到的地方
12 /pat/,$ 从第一次被pat匹配到的到结尾
13 可以使用的命令
14     - d
15     - y
16     - w file 重新另存为文件
17     - r file 将文件的内容写到匹配到的下一行

查找并替换

 1 - 要使用地址定界来进行查找
 2 - s 在扩展命令模式下使用为替换
 3 - 格式: s/要查找的内容/要替换的内容/装饰器
 4 - 要查找的内容可以使用正则
 5 - 替换的内容不能为正则
 6     - 可以为分组:%s/\(nfs.*\)/#\1/ 
 7     - \1表示第一个分组内的内容
 8     - \2
 9     - \3
10     - & 可以代表前面匹配到的内容
11 - 装饰器
12     - i 忽略大小写
13     - g 表示全部替换
14     - gc 每一次替换之前都要询问是否替换
15 - 分隔符还可以使用
16     - @
17     - #

可视化

1 - v 面向字符
2 - V 面向行的
3 - ctrl +v 面向块
4 - 可以结合所有的跳转键进行结合
5 - 对突出显示部分可以使用删除、复制、变更、过滤、替换、另存为等等

打开多个文件

1 vim file1 file2 file3
2 :next 下一个
3 :prev 上一个
4 :first 第一个
5 :last 最后一个
6 :qall 退出全部
7 :wall 保存全部
8 :wqall 保存并退出全部
9 :xall 保存并退出全部

使用多个窗口

1 vim -o 水平分隔
2 vim -O 垂直分隔
3 切换ctrl+w 加上上下左右箭头

单文件切割

1 ctrl+w,s 水平切割
2 ctrl+w,v 垂直切割
3 ctrl+w,q 取消相邻的窗口
4 ctrl+w,o 取消全部窗口

vim工作特性

配置文件

- 全局有效:/etc/vimrc
- 对当前用户有效: ~/.vimrc
- 行号:set nu 取消 set nonu
- 忽略大小写(搜索) set ic 取消set noic
- 自动缩进(同上一行) set ai 取消set noai
- 设置高亮显示(搜索到的内容) set hls 取消set nohls
- 语法高亮 syntax on 取消 syntax off
- 文件格式
    - windows格式 set fileformat=dos
    - unix set fileformat=unix
- 添加标识线: set cul 取消标识线 set nocul
- 获取帮助: set all
- 获取帮助信息:
    - :help
    - :help topic
    - vimtutor

 

posted @ 2020-04-22 11:46  佛祖让我来巡山  阅读(109)  评论(0编辑  收藏  举报

佛祖让我来巡山博客站 - 创建于 2018-08-15

开发工程师个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

Bootstrap中文网