【vim】vim命令
目录
vim的查找功能
在vim下要查找字符串:
一,匹配:
片段匹配
1,从上往下查找,比如“string” : /string
2,从下往上查找,比如“string” : ?string
精确匹配
如果你输入 "/the",你也可能找到 "there"。要找到以 "the" 结尾的单词,可以用:
/the\> "\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\<" 只匹配单词的开头。
这样,要匹配一个完整的单词 "the",只需:/\<the\>
二,正则表达式
1,. :通配1个字符 ,如 匹配 server, 可以用 /se...r
2,* :通配多个字符,如 匹配 privilege,可以用 p*ge
三,快速查找
1, Shift + * :让光标停留在想要查找的单词的任意一个字母上面, 然后输入 Shift + * ,即可快速选中该单词,并且通过 n 或 N 进行上一个或下一个的匹配。
2,yw :让光标停留在单词的第一个字母上, 然后输入yw拷贝该单词, 然后输入 / (Ctrl + R) 0 (即 /”0),回车, 就查找到了第一个匹配的单词, 并且通过 n 或 N 进行上一个或下一个的匹配。
3,匹配多个关键字
/关键字1\|关键字2\|关键字3...
即开头使用斜杠/表示后面是要匹配的内容,
如果想同时使用多个匹配则使用\|将多个关键字隔开
四、跳到下(上)一个搜索结果
搜索高亮后,
跳到下一个:小写n
上一个:大写N
跳转移动
gg:将光标移动到文档开头G:将光标移动到文档末尾
1.跳转到文件头
输入冒号(:),打开命令输入框
输入命令1,是“一”的阿拉伯数字,不是小写的L
2.跳转到文件尾
输入冒号(:),打开命令输入框
输入命令:$
End键:将光标移动到行开头
Home键:将光标移动到行末尾
vim 文本行逆序化
要求
示例:将文本
1234
123
12
1
转换成
1
12
123
1234
:g/.*/mo0
或者
:g/^/mo0
( 注意大文件会执行很长时间)
vim跳转到指定行
ngg/nG (跳转到文件第n行,无需回车)
:n (跳转到文件第n行,需要回车)
vim +n filename (在打开文件后,跳转到文件的第n行)
gg : 跳转到文件头
Shift+g : 跳转到文件末尾
行数+gg : 跳转到指定行,例跳转到123行:123gg
vim删除
- vim 快速删除一个英文单词
ctrl-w删除最后一个单词,
ctrl-u删除你所在的整行.
vim -r file: 恢复上次异常退出的文件;
vim +num file: 从第num行开始;
函数跳转(需要插件ctags)
光标移到想要跳转的函数或变量上 : " CTRL + ] "
回到跳转之前的位置:“ CTRL + t ”
按了多少次“ CTRL + ] ”,就可以按多少次“ CTRL + T ”原路返回
[[ 向前跳到上一个函数头
]] 向后跳到下一个函数头
tag+函数名
来跳转到对应的函数
:tag 函数名
安装ctags:
yum install ctags
sudo apt-get install exuberant-ctags
在源文件目录树执行如下命令:
ctags -R .
即可目录下生成一个tags文件, 这个文件就是所有函数和变量的索引列表
原文链接:https://blog.csdn.net/shenjin_s/article/details/81161372
移动
w: 前移一个单词,光标停在下一个单词开头;
W: 移动下一个单词开头,但忽略一些标点;
e: 前移一个单词,光标停在下一个单词末尾;
E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点;
b: 后移一个单词,光标停在上一个单词开头;
B: 移动到上一个单词开头,忽略一些标点;
文档操作
:e -- 重新加载当前文档。
:e! -- 重新加载当前文档,并丢弃已做的改动。
:w -- 保存修改。
:wq -- 保存并退出。
翻页
n%: 到文件n%的位置。
zz: 将当前行移动到屏幕中央。
zt: 将当前行移动到屏幕顶端。
zb: 将当前行移动到屏幕底端。
复制 / 粘贴
p: 在光标之后粘贴。
P: 在光标之前粘贴。
d$ or D: 删除(剪切)当前位置到行尾的内容。
d[n]w: 删除(剪切)1(n)个单词
d0: 删除(剪切)当前位置到行首的内容
[n] dd: 删除(剪切)1(n)行。
查找 / 替换
/something: 在后面的文本中查找something。
?something: 在前面的文本中查找something。
/pattern/+number: 将光标停在包含pattern的行后面第number行上。
/pattern/-number: 将光标停在包含pattern的行前面第number行上。
n: 向后查找下一个。
N: 向前查找下一个。
:s/old/new - 用new替换当前行第一个old。
:s/old/new/g - 用new替换当前行所有的old。
\d: 表示十进制数(我猜的)
\s: 表示空格
\S: 非空字符
\a: 英文字母
\|: 表示 或
\.: 表示.
{m,n}: 表示m到n个字符。这要和 \s与\a等连用,如 \a\{m,n} 表示m 到n个英文字母。
{m,}: 表示m到无限多个字符。
**: 当前目录下的所有子目录。
排版
<< 向左缩进一个shiftwidth
>> 向右缩进一个shiftwidth
:ce(nter) 本行文字居中
:le(ft) 本行文字靠左
:ri(ght) 本行文字靠右
编辑多个文件
使用:next(:n)编辑下一个文件。
使用:previous或:N编辑上一个文件。
使用:wnext,保存当前文件,并编辑下一个文件。
使用:wprevious,保存当前文件,并编辑上一个文件。
使用:args 显示文件列表。
vi -o filenames 在水平分割的多个窗口中编辑多个文件。
vi -O filenames 在垂直分割的多个窗口中编辑多个文件。
拆分成多窗口
:split 新建一个窗口,将当前窗口分割成两半,他们显示的是相同缓冲区的内容(同一个文件)。这样就可以在两个窗口中浏览相同的文件了。
:vsplit 创建全新的垂直分割的窗口,同样是显示和当前窗口同一个文件内容。效果如下:
关闭与离开窗口
有4种关闭窗口的方式,分别是:离开(quit)、关闭(close)、隐藏(hide)、关闭其他窗口
^代表Ctrl键
^Wq,离开当前窗口
^Wc,关闭当前的窗口
^Wo,关闭当前窗口以外的所有窗口
原文链接:https://blog.csdn.net/pc153262603/article/details/106356307
切换窗口
ctrl+w ctrl+w: 切换到下一个窗口。或者是ctrl+w w。
ctrl+w p: 切换到前一个窗口。
快速编辑
~: 反转光标所在字符的大小写。
r: 替换光标处的字符,同样支持汉字。
R: 进入替换模式,按esc回到正常模式。
[n] u: 取消一(n)个改动。
:undo 5 -- 撤销5个改变。
:undolist -- 你的撤销历史。
ctrl + r: 重做最后的改动。
U: 取消当前行中所有的改动。
:earlier 4m -- 回到4分钟前
:later 55s -- 前进55秒
查看文件编码
:set fenc或:set fileencoding,查看当前文件的编码。
:set ff,显示当前文件的格式。
:pwd 显示vim的工作目录。
:ver 显示版本信息。
在线帮助
:h(elp)或F1 打开总的帮助。
:help user-manual 打开用户手册。命令帮助的格式为:第一行指明怎么使用那个命令; 然后是缩进的一段解释这个命令的作用,然后是进一步的信息。
:helptags somepath 为somepath中的文档生成索引。
:helpgrep 可以搜索整个帮助文档,匹配的列表显示在quickfix窗口中。
Ctrl+] 跳转到tag主题,
Ctrl+t
作者:wlianfu
链接:https://www.jianshu.com/p/9e2f8dcfbd34
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
vim3大模式
基础模式(命令模式) : 按 Esc键即可激活----执行删除,撤销,定位等操作
末行模式: 基础模式下输入 :键即可激活----执行查找,保存等操作
插入模式: 基础模式下输入 i即可激活( A, cw, c$, s也可以)----执行文本插入等操作
1. 光标移动:
基础模式下的 h j k l 对应小键盘 左 下 上 右
2. 移动操作:
0: 移至行首 $: 移至行尾 gg: 移至全文首行 G: 移至全文末行 nG: 移至第n行 ctrl + g: 查看当前行数 nw: 往前进n个单词并停在词头 ne: 往前进n个单词并停在词尾 ctrl+O: 后退一次的光标位置 ctrl+I: 前进一次的光标位置
3. 删除操作:
dd: 删除(剪切)整行 ( ndd: 删除向下n行) x: 删除光标处字符 dnw:删除n个单词 de: 从光标删到词末 d$ : 从光标删到行末
4. 插入操作:
o: 当前行下方插入空行并进入插入模式 O: 当前行上方插入一行并进入插入模式 A: 当前光标所在行尾处插入 a: 当前光标后一位处插入 i: 当前光标处插入
5. 修改操作:
r : 替换光标所在处字符 R: 连续替换光标所在处字符 cw: 修改单词到词尾 c$: 修改内容到行尾 ndd + p: 成行的剪切+粘贴 :s/old/new: 将所在行的第一个old换成new :s/old/new/g: 将所在行的所有old换成new :%s/old/new/g: 将所在文本的所有old换成new :%s/old/new/gc: 将所在文本的所有old换成new并逐一请示
6. 撤销/恢复操作:
u: 撤销一步操作 U: 撤销所在行的操作 ctrl + r: 恢复(可撤销掉撤销操作)
7. 查询操作:
%: 旋停在括号上可用, 配对括号定位 /待查单词: 显示所有待查单词, 从第一个目标单词开始 ?待查单词: 显示所有待查单词, 与 /逆向 n: /式中为向后查找相同的单词 N: /式中为向前查找相同的单词 /待查单词c: 仅本次查询忽略大小写 :set ic: 查询忽略大小写(ignore case) :set noic: 恢复查询大小写敏感模式 :set hls is: 查询高亮 :nohlsearch: 取消高亮
8. vim内暂时使用shell命令(借助末行模式)
:!ls : 暂时查看当前vim运行目录下的文件 :w BACKUP: 当前文件内容另备份于BACKUP :r OTHERS: 将文件OTHERS中内容插入到光标旋停行 :help w: 分屏查看帮助文档, :q!可以退出帮助文档
9. 可视功能v的用法
v + h j k l选中区域 + y + p : 复制粘贴 v + h j k l选中区域 + d + p : 剪切粘贴 v + h j k l选中区域 + :w BACKUP: 将选中文本内容保存于BACKUP中
10. 创建启动脚本vimrc
1. 开始编辑 vimrc 文件,具体命令取决于您所使用的操作系统:
:edit ~/.vimrc 这是 Unix 系统所使用的命令
:edit $VIM/_vimrc 这是 MS-Windows 系统所使用的命令
2. 接着读取 vimrc 示例文件的内容:
:r $VIMRUNTIME/vimrc_example.vim
3. 保存文件,命令为:
:write
下次您启动 Vim 时,编辑器就会有了语法高亮的功能。
您可以把您喜欢的各种设置添加到这个 vimrc 文件中。
要了解更多信息请输入 :help vimrc-intro
* 摘自vimtutor第七讲第二节
其他内容:
1. 输入 :help 或者按 <F1> 键或 <Help> 键可以打开帮助窗口。
2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。
3. 输入 CTRL-W CTRL-W 可以使您在窗口之间跳转。
4. 输入 :q 以关闭帮助窗口
5. 您可以创建一个 vimrc 启动脚本文件用来保存您偏好的设置。
6. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。按 <TAB> 可以使用一个补全。
————————————————
版权声明:本文为CSDN博主「weixin_39943992」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39943992/article/details/111331234
1. 安装插件
首先,Vim的Vundle中应有
Plugin 'vim-scripts/ctags.vim'
Plugin 'vim-scripts/taglist.vim'
1
2
并且PluginInstall 安装完毕。
2. 生成tags
在需要的工作目录运行
ctags -R
1
会生成一个tags文件,其中包括了函数定义等。
3. 配置vimrc中tag路径
配置.vimrc,将生成的tags目录在.vimrc中进行配置:
例如:
set tags+=/c/Works/new_system/tags
set tags+=c:\Works\new_system\tags
1
2
Linux以/为目录区分;
Windows以\为目录区分;
4. 配置快捷键:
使用F3打开当前文件的taglist列表:
map <F3> :TlistToggle<CR>
1
(划重点 划重点 划重点)
5. 配置tag数据库(雾)cscopetag
针对 Ctrl + ]对函数、元素进行跳转时控制是否进行选择:
set cscopetag
1
在.vimrc中配置 cscopetag则在Ctrl + ]出现时出现选择 tag,
若有同名函数,则手动进行选择;
若想跳转到第一条匹配的只需要set nocscopetag即可。
6. vim中的tselect选择
Vim中使用:tselect + 函数名也可以查看tags中该函数的路径进行选择;
7. 终端中的跳转
或者直接在终端中键入 vim -t + 函数名也可以进行跳转;
8. 跳转返回
使用 Ctrl + ] 跳转进入深层函数后,可以通过 Ctrl + t返回。
————————————————
版权声明:本文为CSDN博主「Aemonair」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Aemonair/article/details/78813823