前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日常记录(2)vim操作查询手册

日常记录(2)vim操作查询手册

作者头像
嘘、小点声
发布2021-12-07 17:46:38
8480
发布2021-12-07 17:46:38
举报
文章被收录于专栏:嘘、小点声嘘、小点声

退出vim

按键

功能

:wq

保存退出

:w filename

保存到指定文件

:q

退出,如果文件修改但没有保存,会提示无法退出

:q!

退出,不保存

进入插入模式

按键

功能

a

光标位置右边插入文字

i

光标位置当前处插入文字

o

光标位置下方开启新行

O

光标位置上方开启新行

I

光标所在行首插入文字

A

光标所在行尾插入文字

进入可视化模式

按键

功能

Ctrl+v

进入可视化编辑模式

其它

按键

功能

:set expandtab

tab展开为空格

cc/S

清除整行,进入插入模式

d$/C

删除光标右边文字/删除光标右边文字进入插入状态

di)

删除括号内的文本

:set undodir=”xxxx” :set undofile

设置持久性撤销和临时保存的文件位置

:ls

显示当前缓冲区文件信息

:e

打开新文件,其他文件放入缓冲区

:b 缓冲区编号或者文件名

切换到指定的缓冲区文件处

:bd/:bd3

删除当前的缓冲区/指定缓冲区窗口

“byw

将当前光标到单词结尾处的内容放入寄存器”b中(无”b则放入匿名寄存器””中)

“bdw

将当前光标处到单词结尾的内容剪切到寄存器”b中

“bp

将”b中的内容粘贴

“1p/”2p/”3p

将自动存放的历史删除内容分别粘贴出来,其中”1,”2,”3为寄存器

ctrl +n/p

代码补全,向下查找/向上查找

ctrl+x+i

使用当前工程文件的中的参数进行补全

ctrl+x+f

使用当前工程文件和文件夹名补全

ctrl+x+j

补全标签

查找功能

按键

功能

shift+*

向下查找当前光标所在的相同单词并高亮显示

shift+#

向上查找当前光标所在的相同单词并高亮显示

gd

从头查找当前光标所在的相同单词并高亮显示

:noh

取消高亮显示

n

定位到查找内容的下一个

N

定位到查找内容的上一个

:/String

查找以String组成的正则表达式

/^字符串

查找以字符串开始的行

/字符串$

查找以字符串结尾的行

替换功能

按键

功能

.

任意字符,不包括换行

\_.

任意字符,包括换行

^$

行开头和结尾

\<\>

单词开头和结尾

\s

一个tab或空格

\d

一个数字

\a

一个字母

\w

一个数字或字母

\l

一个小写字母

\u

一个大写字母

\x

一个十六进制数

\X

一个非十六进制数

\D

一个非数字

\W

一个非字母

\S

一个非空白字符

A\|B

匹配A或B

\(X\) \(A\|B\)C

将X作为一个组 匹配AC或BC

*

重复前一个字符0到多次

\+

重复前一个字符1到多次

\? \=

重复前一个字符0到1次

\{m,n}

重复前一个字符m到n次

\{-m,n}

重复前一个字符m到n次,尽可能少的字符数进行匹配

按键

功能

r

替换当前光标字符

:r 文件名

在光标当前位置下一行载入另一个文件

:%s/p1/p2/g

将文件中所有p1均用p2替代,p1和p2可以为正则表达式

:n1,n2s/p1/p2/g

将n1到n2行所有p1均用p2替代

:%s/p1/p2/gciIe

替换时、全局替换,替换确认,忽略大小写,区分大小写,没有匹配时不显示错误

:106;/endstring/s/p1/p2/g

在106行到endstring行的p1内容替换为p2

光标定位

行间定位

按键

功能

gg

到文件第一行行首

G

到文件最后一行行首,G必须为大写

:n

到指定行,n为目标行数

[n]G

到指定行,n为目标行数

行内定位

按键

功能

w/W

后移一个字(狭义)/后移一个字(广义)

b/e,B/E

光标移动到当前字首/字尾(广义,狭义)

$

光标移动到行末尾

0

光标移动到行开头

fx

x为一个字符,光标向右移动到字符x处

cw/ce/cb/c4l

删除当前光标处经过的字符量,单个单词不删除空格,进入插入模式

c2w/c2aw

删除光标后的两个单词,进入插入模式

dw/d3e/db/d4l

删除当前光标处经过的字符量,并删除空格

定位切换

按键

功能

Ctrl + o(O)

回到上次编辑的光标位置

ctrl + i(I)

回到下次编辑的光标位置

文本编辑

删除和修改功能

按键

功能

[n]x

删除光标后 n 个字符4x

[n]X

删除光标前 n 个字符

D

剪切光标所在开始到此行尾的字符

[n]dd

删除从当前行开始的 n 行(准确来讲,是剪切,剪切不粘贴即为删除)

[n]yy

复制从当前行开始的 n 行

p

把粘贴板上的内容插入到当前行

dG

删除光标所在行开始到文件尾的所有字符

J

合并两行

.

执行上一次操作

u

撤销前一个命令

ctrl+r

恢复对使用u命令的操作

多窗口操作

按键

功能

:sp file

横向新增窗口,file为窗口名

:vs file

纵向新增窗口

vim -o file1, file2…

横向窗口打开文件

vim -O file1, file2…

纵向窗口打开多个文件

:qa

退出所有窗口

:res(ize) num

显示行数调整为num行

:res+num/:res-num

显示行数增加num行/显示行数降低num行

:vertical res num

纵向调整显示行数

:n / :N / :n file

当前窗口显示为下一个窗口内容/上一个窗口内容/指定文件内容

:e#

回到刚才编辑的文件

ctrl+w+上下左右 ctrl+w+hjlk ctrl+w+HJLK

切换到上/下/左/右的一个窗口 切换到←↓↑→的一个窗口 移动窗口位置到←↓↑→

ctrl+w+w

切换到下一个窗口

ctrl+w+o

删除当前外的其它窗口

ctrl+w+=

设置所有窗口大小相等

:resize +N -N N

设置窗口高度,加,减,等于

:vertical res +N -N N

设置窗口宽度,加,减,等于

:tabnew + filename

创建新标签页

gt/gT

切换到下一个/上一个标签页

辅助命令

按键

功能

:m N

将本行移动到第N行下方

:g/^/m 0

倒序文件行,g为全局查找,^为文件行

: +1d

删除当前行的下一行

:g/^/+1d :%norm jdd

删除偶数行

:%norm jkdd

删除奇数行

:%s/^\(.*\)\(\n\1\)\+$/\1/g

多行重复行压缩为1行

:%s/^\(.*\)\n\1$/\1/g

两个重复行压缩为1行

set命令

按键

功能

:set list

显示以“$”表示的换行符和以“^I”表示的制表符等特殊符号

:set nolist

取消特殊符号显示

:set ic

搜寻时不区分大小写

:set noic

搜寻时区分大小写

:set nu

显示行号

:set nonu

不显示行号

:set foldmethod=indent

折叠当前的所有代码,折叠方式为缩进

zi

把折叠状态的所有代码展开和关闭

zo

展开当前位置的折叠代码

zc

折叠当前位置的展开代码

za

切换当前位置的代码展开和折叠状态

:vimgrep string **/*.py

跨文件查找字符串string。

:cn/:cp

跨文件查找字符串的下一个/上一个

其它命令

按键

功能

:!cmd

临时执行外部shell命令

ctrl+u/ctrl+d

屏幕向前/向后翻页半个屏幕

pageup/pagedown

屏幕向前/向后翻页一个屏幕

:terminal

打开终端窗口

:map newcmd existcmd

设置命令映射,newcmd如;asdf

:help existcmd

查看已经存在的命令

:set hlsearch/nohlsearch

设置/取消高亮查找

:arg **/*.py :args :argdo cmd

匹配跨文件操作文件 查看跨文件操作文件 执行跨文件操作文件内容的命令cmd

qx @x qxq

录制宏到x寄存器中 播放x中录制的宏 清空寄存器x中的内容

:set wrapscan/nowrapscan

设置循环查找/非循环查找

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 退出vim
  • 进入插入模式
  • 进入可视化模式
  • 其它
  • 查找功能
  • 替换功能
  • 光标定位
    • 行间定位
      • 行内定位
        • 定位切换
        • 文本编辑
        • 多窗口操作
        • 辅助命令
        • set命令
        • 其它命令
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档