Vim普通模式下快速移动大法

本文详细介绍了Vim编辑器中进行快速移动的多种方法,包括字符、单词、行内搜索、行号导航、屏幕滚动、括号匹配、位置标记等。这些技巧能帮助用户更高效地在文本中定位和操作。通过熟练掌握这些命令,可以极大地提升在Vim中的工作效率。
摘要由CSDN通过智能技术生成
快速移动

配合数字一起使用,重复执行从而移动多步。

# 字符移动
k		# 上,可先按数字,多步移动
j		# 下
h		# 左
l		# 右
# 单词/词组移动
w/W		  # 下一个单词/词组开头,也可先按数字,多步移动
e/E		  # 下一个单词/词组结尾
b/B		  # 上一个单词/词组开头
ge/gE   # 上一个单词/词组结尾
# 一个单词指以非空格符分割的单词(会把空格符也作为单词的一部分),通常包含a-zA-Z0-9,查看帮助:h word
# 一个词组指一个包含除了空字符(空字符包含空格,tab,EOL)之外的其他字符组成的字符串,即以空字符分割,查看帮助:h WORD
# 行内字符搜索移动(当前行导航)
f+指定的字符			# 光标移动到本行指定的字符上
t+指定的字符			# 光标移动到本行指定的字符的前一个字符
F+指定字符			# 逆向搜索移动到本行指定字符
T+指定字符      # 逆向搜索移动到本行指定字符的前一个字符
# 分号;搜索下一处,可先按数字,多步移动可先按数字,多步移动
# 逗号,搜索上一处,可先按数字,多步移动

# 水平移动(行内)
0			# 移动到行首
$			# 移动到行尾
^			# 移动到该行第一个非空白字符
g_			# 移动到该行行尾非空白字符
数字+|		# 移动到本行指定列
# 句子:通常以.或!或?和跟着的换行符、空格、tab结尾的。帮助文档:h setence。
)     # 跳到下一个句子
(     # 跳到上一个句子

# 段落:大多数情况下,段落以空行开始和结尾。帮助文档::h paragraph。
{     # 跳到上一个段落
}     # 跳到下一个段落
# 括号匹配导航
%       # 跳到与该括号匹配的括号处
# 行号导航
gg				# 移动到文件开头
G				# 移动到文件结尾
数字+G 或 数字+gg           # 跳转到文件的指定数字行
数字+%                     # 跳到文件的百分之'数字',比如50%跳到文件总行数的50%左右的行

ctrl-g        # 查看文件总行数
# 当前页面内移动(窗格导航)
H				# 光标移动到当前页面的顶部
M				# 光标移动到当前页面的中间
L				# 光标移动到当前页面的底部
nH      # 光标移动到距离顶部n行的位置
nL      # 光标移动到距离底部n行的位置
# 滚动
ctrl+f			# 向下滚动一屏
ctrl+b			# 向上滚动一屏
ctrl+d			# 向下滚动半屏
ctrl+u			# 向上滚动半屏
ctrl+e			# 向下滚动一行
ctrl+y			# 向上滚动一行
数字+				# 光标下移指定数字行
数字-				# 光标上移指定数字行

zt				# 将指定行移动到屏幕顶部,默认为光标所在行,先按数字可以指定行
zz				# 将指定行移动到屏幕中间,默认为光标所在行,先按数字可以指定行
zb				# 将指定行移动到屏幕底部,默认为光标所在行,先按数字可以指定行
位置标记Marks
  • 标记作用:通过标记来保存位置,可以快速回到标记的位置。帮助文档:h marks
  • Vim已经提供的一些标记
    ''    # 在当前buffer中跳转回到上一次跳转前的最后一行
    ``    # 在当前buffer中跳转回到上一次跳转前的最后一个位置
    `[  # 跳转到上一次修改或拷贝的文本的开头
    `]  # 跳转到上一次修改或拷贝的文本的结尾
    `<  # 跳转到最近一次可视模式下选择的部分的开头
    `>  # 跳转到最近一次可视模式下选择的部分的结尾
    `0  # 跳转到退出Vim前编辑的最后一个文件
    
  • 自定义位置标记:通过mx设置一个标记,其中x通常可设置为a-zA-Z。设置好标记后,可以通过`x精确回到标记的位置(行和列),或者用’x回到标记的行。
    • 举例
    ma    # 用a标签标记一个位置
    `a    # 精确回到a标签的位置
    'a    # 跳到a标签的行
    
    • a-z的标签是局部标签,也就是作用域只在当前buffer,每个buffer都可以有自己的一套局部标签,一个buffer的标签不会影响另一个buffer的同名局部标签。
    • A-Z的标签是全局标签,所有buffer共享的一套标签,实现标签的跨文件使用,从而从一个buffer跳转到另一个buffer中标记的位置。
    • 使用:marks可以查看所有标签。
跳转
:tag    # 跳到tag定义
  • 查看当前跳转列表:jumps,帮助文档:h jump-motions
# 打开文件时跳转到指定行和指定列
vim test.zshrc	-c "normal 12G8|"     # 跳到12行8列
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值