我的vim使用笔记

2 篇文章 0 订阅

在这里插入图片描述

通过源码安装vim

Github项目地址:https://github.com/vim/vim
源码编译安装参考:https://blog.csdn.net/MyJoiT/article/details/82082638
卸载通过源码编译安装的Vim:进入源码目录,执行:sudo make uninstall

打开系统帮助手册

- 按下 <HELP> 键 (如果键盘上有的话)
- 按下 <F1> 键 (如果键盘上有的话)
- 输入	:help <回车>

练习vim的相关操作

vimtutor -g zh

若出现报错: Failed to load module “canberra-gtk-module”
(作者编写时运行环境为ubuntu18.04)

解决方法:

sudo apt-get install libcanberra-gtk-module

进入插入模式

进入插入模式并光标前插入文本:i
进入插入模式并光标后插入文本:a
进入插入模式并将光标移至行首:I
进入插入模式并将光标移至行尾:A
进入插入模式并在当前行下面开启新行:o
进入插入模式并在当前行上面开启新行:O

退出

不保存退出::q
保存退出::wq:xZZ

常用操作

命令:【操作符】 【数字】【移动光标的动作】

操作符说明
d剪切
y复制
c修改(change) ,等于删除内容并进入插入模式

撤销最后一次执行的命令(undo):u
恢复到该行的原始状态:U
撤销掉撤销命令:ctrl+r


复制行:yy
剪切行:dd
剪切到行尾:D
修改行:cc
修改到行尾:C


删除光标所在位置的字符:x


替换光标所在位置的字符(replace):r
逐个替换光标所在字符,光标自动向后移动:R


可以在当前文件中往下查找该字符串:/string
可以在当前文件中往上查找该字符串:?string
下一个(next):n
上一个:N


替换该行第一个匹配的字符串:: s/old/new
替换该行全部匹配的字符串:: s/old/new/g
其中#,#代表的是替换操作的若干行中的首尾两行中匹配的字符串::#,#s/old/new/g
替换整个文件中的每个匹配字符串::%s/old/new/g
替换整个文件中的每个匹配字符串,并且会提示是否替换::%s/old/new/gc


配对括号的查找,在两个括号之间跳转:%


执行shell命令::!命令


光标移动

向下翻一页:ctrl+f
向上翻一页:ctrl+b
向下翻半页:ctrl+d
向上翻半页:ctrl+u

光标移到行首:0
光标移到行尾:$
到下一个单词起始处:w
到下一个单词结尾处:e
到上一个单词起始处:b

光标移到,该行接下来找到的第一个指定字符:f+字符

当前页面顶部:H
当前页面中部:M
当前页面底部:L

VISUAL模式

  1. 进入单个选择:v
  2. 或进入行选择:shift+v
  3. 选择后,复制:y,剪切:d

多行同时编辑:ctrl+v 进入行选择

  • 多行同时增加,选择后键入I,输入添加内容后按Esc即可
  • 多行同时删除,选择后,键入d

书签

书签分为文件书签跟全局书签。

  • 文件书签是你标记文件中的不同位置,然后可以在文件内快速跳转到你想要的位置。
  • 全局书签是标记不同文件中的位置。也就是说你可以在不同的文件中快速跳转

显示所有书签或指定的书签::marks [{a-z}/{A-Z}]
保存书签:m{a-z}m{A-Z}

  • 小写的是文件书签,可以用(a-z)中的任何字母标记。
  • 大写的是全局书签,用大写的(A-Z)中任意字母标记。

跳转到指定书签精确位置(行和列):`{a-z}`{A-Z}
调整到书签a所在行的起始位置:’{a-z}/{A-Z}
删除一个书签 (delete a mark) ::delm {a-z}/{A-Z}
删除全部书签 (delete all marks)::delm!

还有一些vim缺省的标识

缺省标识说明
0"当前文件上次退出的位置
.最后一次执行改变的位置
[先前改变或者复制文本的第一个字符
]先前改变或复制文本的最后一个字符
<先前选择可视化区域的第一行
>先前选择可视化区域的最后一行
^最后一次插入模式停止的光标所在位置

分屏相关操作

相关英语解释:vertical,垂直的。horizontal,水平的。
垂直分屏:将屏幕垂直分割为左右两个屏
水平分屏:将屏幕水平分割为上下两个屏
在shell使用vim打开同时多个文件:

  • (垂直分屏)vim -On file1 file2
  • (水平分屏)vim -on file1 file2

创建空白分屏::new
以分屏形式打开文件:

  • 垂直分屏::vsplit(或:vsp) filename
  • 水平分屏::split(或:sp) filename

打开当前文件:

  • split:ctrl+w+s
  • vsplit:ctrl+w+v

关闭分屏:

  • 取消一个分屏(close):ctrl+w+c
  • 取消其它分屏,只保留当前分屏::only或者ctrl+w+o

移动分屏焦点:

  • 依顺序切换:ctrl+w+w
  • 依方向切换:ctrl+w+方向键

改变分屏尺寸:

  • 均分:ctrl+w+=
  • 左:ctrl+w+数字+<
  • 右:ctrl+w+数字+>
  • 上:ctrl+w+数字++
  • 下:ctrl+w+数字-+

将当前窗口调至最大:

  • 水平分屏时:ctrl+w+数字-_
  • 垂直分屏时:ctrl+w+数字-|

改变分屏位置:

  • 移动到最左边:ctrl+w+H
  • 移动到最右边:ctrl+w+L
  • 移动到最上边:ctrl+w+K
  • 移动到最下边:ctrl+w+J

折叠与展开代码

  • 折叠代码:zf
  • 展开代码:zo
  • 折叠成对大括号之间的内容,包括大括号所在行,一般用于折叠函数定义、 循环、只有一个分支的条件判断:zfa{
  • 折叠成对大括号之间的内容,不包括大括号所在行,一般用于折叠条件判断的多个分支、try-cache 的各部分内容:zfi{

后台运行vim与恢复前台

  • 第一种
    在命令模式下输入":sh",可以运行相当于在cmd模式下,到输入结束想回到VIM编辑器中用exit,ctrl+D返回VIM编辑器

  • 第二种
    将正在打开的vim后台运行:ctrl+z
    查看后台程序:$ jobs
    将后台程序恢复为前台程序:fg %数字

其他

显示命令行历史记录列表:q+:
显示搜索记录列表:q+/
显示当前光标所在的位置和文件状态信息:ctrl+g
启动man手册查询光标处单词:shift+k

我的vim相关配置

https://github.com/HideOnLie/dotfile/blob/master/.vimrc

习惯性按了Ctrl+s该怎么办?

由于长时间在windows的编辑器进行工作 ,很容易直接使用Ctrl+s保存,这时就能发现vim输出不进数据了
原因:
在Linux下,Ctrl+s用来暂停向终端发送数据,输入的数据都在缓冲区出不来了
解决方法:
此时按下Ctrl+q就退出那个状态恢复正常了,此时之前位于缓冲区的数据也会输出

粘贴时格式混乱怎么办?

打开粘贴模式::set paste
关闭粘贴模式::set nopaste

参考学习

https://www.cnblogs.com/markleaf/p/7808817.html
https://www.cnblogs.com/codehome/p/10214801.html
https://blog.csdn.net/weixin_43250623/article/details/88722389
https://blog.csdn.net/qq_27825451/article/details/103507518
《Vim 从入门到精通》
插件参考配置博客
https://blog.csdn.net/l_changyun/article/details/98252459

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值