1 vim基础

本文属于vim系列第一篇,介绍了vim常用的基本操作。

1 vim基础

vim基本操作

vim基础_u012906122的专栏-CSDN博客

2 vi/vim使用进阶

vim进阶,插件配置

vi/vim使用进阶_u012906122的专栏-CSDN博客

3 vim-config

根据[vi/vim使用进阶]写的软件包

vim-config_u012906122的专栏-CSDN博客_vimconfig安装包

1 编辑模式

1.1 跳转

// 当光标停留在一个单词上,* 键会在文件内搜索该单词,并跳转到下一处 

*

// 当光标停留在一个单词上,# 在文件内搜索该单词,并跳转到上一处
#

// 将光标定位到文件第1行起始位置

gg

// 将光标定位到文件最后1行起始位置
G

// 将光标定位到第n行的起始位置
ngg

// 查看文件总行数和当前行数位置
ctrl+g

1.2 搜索匹配

// 正向搜索字符串 str1

/str1    

// 继续搜索,找出 str1 字符串下次出现的位置
n

// 继续搜索,找出 str1 字符串上一次出现的位置
N

1.3 复制黏贴删除

// 单行复制

yy 

// 多行复制
nyy 

// 粘贴 

// 单行删除
dd

// 多行删除
ndd

1.4 括号匹配及文字段落

// 从当前的括号跳转到与其匹配的括号上去,对花括号{}|圆括号()|方括号[]都有效

%         

1.5 撤销和重复

// 撤消前一条命令的结果

u

// 重复最后一条修改正文的命令
.

2 插入模式

2.1 进入插入模式

// 在光标左侧插入正文

i

// 在光标右侧插入正文
a

// 在光标所在行的下一行增添新行
o

// 在光标所在行的上一行增添新行
O

3 命令模式

3.1 显示行号

// 临时显示行号

:set number

// 临时取消显示行号

:set nonumber

3.2 跳转

// 将光标移到第 n 行

:n

3.3 字符串搜索

// 正向搜索,将光标移到下一个包含字符串 str 的行(n)

:/str

3.4 高亮显示字符串

// 设置高亮搜索,.vimrc已经配置

:set hlsearch            

// 'main'高亮显示

:/main                      

// 退出后去除高亮显示
:noh       

3.5 字符串替换

g 放在命令末尾,表示对搜索字符串的每次出现进行替换,不止匹配每行中的第一次出现;不加g,表示只对搜索字符串的首次出现进行替换;s 表示后面跟着一串替换的命令;

// 用字符串str2替换正文中所有出现的字符串str1
:1,$ s/str1/str2/g

// 在n1与n2行之间查找str1替换为str2

:n1,n2  s/str1/str2/g

3.6 复制粘贴

// 将第9行至第15行的数据,复制到第16行

9,15 co 15

3.7 恢复文件

意外退出vim,*.swp说明.假如编辑后没保存,意外退出vim: 

.swp:

vim Android.mk:

解释下:
(i)Edit anyway:只编辑保存过的内容

 (ii)Recover:恢复未保存的内容

 (iii)Delete it:删除*.swp文件

3.8 Shell切换

// 执行完 shell_command 后回到Vim

:!shell_command             

:!ls -l

3.9 分屏

https://www.cnblogs.com/bugutian/p/4498326.html

// 上下分屏
:split(可用缩写 :sp)

:sp  ./Android.mk

// 左右分屏
:vsplit(可用缩写 :vsp)

:vsp  ./Android.mk

// 在窗口间跳转

ctrl+w   

3.10 文件比较

// 上下分屏

:diffsplit abc.txt                

// 左右分屏

:vert diffsplit abc.txt         

4 ctags

4.1 系统函数

使用shift+K会自动跳转

4.2 自定义函数

需要提前配置ctags:
(i)生成索引文件
hyh3333@arc-R730:~/sdm845_la2.0$ ctags -R *
(ii)ctags配置
使用vim ~/.vimrc 编辑vim的配置文档,在其中加入如下命令:

// 注意不能":set tags = /test_vim/tags"
:set tags=/test_vim/tags                
(iii)vimrc配置多个ctags文件
:set tags+=/test_tmp/tags

使用:
(1)Linux命令行
#vim -t XXX                //查找XXX变量或函数
vim -t PreApplicationInit
(2)编辑模式
ctrl + ]                        //调到光标所在函数或结构体的定义处
ctrl + t                        //返回查找      
(3)命令模式
:ts                                //tagslist
:tp                               //tagspreview
:tn                               //tagsnext  
#vim –t tag:
在运行vim的时候加上“-t”参数,例如:vim - t func这个命令将打开定义func(变量或函数或其它)的文件,并把光标定位到这一行。
如果这个变量或函数有多处定义,在vim命令行模式:ts命令就能列出一个列表供用户选择。
:tp为上一个tag标记文件,:tn为下一个tag标记文件。
当然,若当前tags文件中用户所查找的变量或函数名只有一个,:tp,:tn命令不可用。
ctrl+]:
最方便的方法是把光标移到变量名或函数名上,然后ctrl+],这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。
用ctrl+t可以退回原来的地方。
即使用户使用了N次ctrl+]查找了N个变量,按N次ctrl+t也能回到最初打开的文件,它会按原路返回。
ctrl+]可以和:ts :tp :tn共同合作.

5 其他补充

5.1 vim 复制文件中多行到另一个文件

100,200y
:vsp 
ctrl + w +w
p

5.2 vim复制单个单词

// 复制当前单词到寄存器
viw
y
p

5.3 选中部分字符串

v...y     部分复制
v...x     部分剪切
v...d     部分删除
v...yy    复制到剪切板

5.4 使用及配置剪贴板

clipboard的安装:
https://www.cnblogs.com/qiyuexin/p/7057686.html

vim 有12个粘贴板依次编号为:0、1、2、...、9、a、"、+,其中 + 号为系统粘贴板,” 为临时粘贴板。系统剪切板中的内容可在其他程序中使用。上面的复制指令都可以配合剪切板进行操作:

"nyw 复制当前单词到 n 号剪切板(双引号开始)
"np 粘贴 n 号剪切板内容到当前位置后

插件配置~/.vimrc:

// ctrl+c:复制当前单词

nmap <c-v> "+1p

// ctrl+c:黏贴
nmap <c-c> "+1yw

// ctrl+d:删除当前单词

nmap <c-d> viwd

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值