我的vim学习笔记,记录了很多实用的操作

学习网站

在linux上学

​ 输入 vimtutor zh

还可以在这些地方学

陈浩简明 VIM 练级攻略
vim教程网
高效编程:在IntelliJ IDEA中使用VIM
frankfuckppt b站自搜(淘宝付费教程)

我在这学的,感觉还阔以,讲虚拟机的使用、linux和vim

visual(可视化模式)

选中

  • v:可以自由选中任意文本

可以按o改变光标在选中文本的位置,且已选中的文本不会失去选中状态

image-20211116114146523

image-20211116114213228

  • V:只能选中行

  • ctrl+v:很神奇的一种选中方式

    image-20211116114254417

    • vaw:快速选中一个单词

    • vab:快速选中括号及括号内的单词

    image-20211116114505802

    • vaB:快速选中包含大括号的一段代码块

    1

缩进

选中代码后

  • <:往左缩进
  • >:往右缩进
  • =:自动给代码完成缩进

转大小写

  • ~:翻转选中文本的大小写
  • u:全变小写
  • U:全变大写

normal模式(打了个:就进入命令模式啦)

normal模式千万别使用<----(退格符),和 delete,插入模式可以考虑使用

INSERT,进入插入模式

  • a:在一行后添加
  • i:在光标前添加

d|num|motion

  • (数字)x:删除几个字符

d代表删除操作符

  • d(数字)w:删除直到下一个单词首字母

    中间的所有空格都会被删除,也就是说,可以用来直接删除所有空格,直到下一个单词首字母

  • d$:删除光标所在位置及后面的全部字符

  • de:只会删除当前单词,而不会删除空格

  • (数字)dd:删除整行

跳转

单行内
  • (数字)b:往前跳,跳到单词首字母。

  • (数字)w:往后跳,跳到单词首字母。

  • (数字)e:跳到单词末尾,可指定跳到第几个单词末尾。

    末尾只能是单词尾字母,如果已经在单词尾字母处,则会跳到下一个单词尾字母。

  • ^:跳跃到本行开头(首字符所在位置)

  • 0:跳到行首(包含了空白符)

  • $:跳到行尾

如果你认为单词是由 blank 字符分隔符,那么你需要使用大写的 E 和 W 。(陈皓注:程序语句)

image-20211112064312973

多行
  • (数字)G:到第N行
  • gg:到第一行
  • G:到最后一行
  • :(数字):直接打数字相当于到达当前行号加上这个数字后的行数,而不是准确的一行
匹配移动
  • % : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)
  • *#: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)

真就是匹配单词,不是我想的字符

段落移动

其实就相当于移动到完全空白的一行

  • {:向上移动一段
  • }:向下移动一段

撤销

undo

  • u:撤销上一个操作
  • U:撤销对本行的修改
  • ctrl+R:撤销撤销

修改

输入 r 修改当前字符

  • ce:de+i,也就是说删除当前光标后面的字符,并进入插入模式,不同的是,插入模式只能往前插入,而这个能在光标所在位置插入
  • c$:删除光标所在位置及后面的所有字符,并进入插入模式

剪切和粘贴

  • (数字)p:粘贴
  • yy:复制

所有的删除都相当于是剪切,因为 vim 有个寄存器能储存被删除的内容。

重复执行上次命令

它不会记录 hjkl,等移动光标的操作,但会记录 i,o,a操作

  • (数字).

比复制粘贴少几步操作,相当于提前复制了,而且根据 i,o,a 还能指定往前面复制还是往后复制或是往下复制

image-20211114175928830

查找和替换

  • /(内容):查找指定的内容
  • : s/(内容)/(替换的内容)/g:加/g(全局),代表替换当前行的所有内容
    csdn直接输入 😒 会变成表情 ‘:’ 后面没有空格

不加/g只会替换一个单词

  • %s/(内容)/(替换的内容)/gc:替换整个文件的内容,加 c 后你需要输入 y 确定是否替换,如果不加 c 那就直接替换了。

:set number可以临时显示行号

  • :9,15s/(内容)/(替换的内容)/g:替换 9 到 15 行的所有内容

翻页

翻一大段

  • ctrl+f:向下翻页
  • ctrl+b:向上翻页

滚动翻页,只会翻一点点

  • ctrl+e:向下翻页
  • ctrl+y:向上翻页

vim基本配置

简单配置,真正的高手不需要。。。

vim .vimrc

# 高亮
set syntax=on
# 缩进
set tabstop=4
set softtabstop=4
# 语言
set enc=utf-8
# 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个括号
set showmatch

高端配置,真正的高手需要。。。

带佬 jaywcjlove 的配置

带佬程序员 Carl 的配置

暂时举两个,欢迎大家补充。

进阶!理解Vim

这部分来源 一起来说 Vim 语,理解此部分是需要你已经了解了 Vim 的几种常用的工作模式(正常模式、插入模式、命令模式等)

动词理解

==动词代表了我们打算对文本进行什么样的操作。==例如:

d # 表示删除delete
r # 表示替换replace
c # 表示修改change
y # 表示复制yank
v # 表示选取visual select

名词理解

名词代表了我们即将处理的文本。

Vim 中有一个专门的术语叫做 [文本对象] text object,下面是一些文本对象的示例:

w # 表示一个单词 word
s # 表示一个句子 sentence
p # 表示一个段落 paragraph
t # 表示一个 HTML 标签tag

引号或者各种括号所包含的文本称作一个文本块。

介词理解

介词界定了待编辑文本的范围或者位置。

i # 表示在...之内 inside
a # 表示环绕... around
t # 表示到...位置前 to
f # 表示到...位置上 forward

数词理解

数词指定了待编辑文本对象的数量,从这个角度而言,数词也可以看作是一种介词。

引入数词之后,文本编辑命令的语法就升级成了下面这样:

c3w  # 修改三个单词:change three words
d2w  # 删除两个单词:delete two words

另外,数词也可以修饰动词,表示将操作执行 n 次。

于是,我们又有了下面的语法:数词 动词 名词

2dw # 两次删除单词(等价于删除两个单词): twice delete word
3x  # 三次删除字符(等价于删除三个字符):three times delete character

组词为句理解

有了这些基本的语言元素,我们就可以着手构造一些简单的命令了。

文本编辑命令的基本语法如下:

下面是一些例子(如果熟悉了上面的概念,你将会看到这些例子非常容易理解),请亲自在 Vim 中试验一番。

dip # 删除一个段落: delete inside paragraph
vis # 选取一个句子: visual select inside sentence
ciw # 修改一个单词: change inside word
caw # 修改一个单词: change around word
dtx # 删除文本直到字符“x”(不包括字符“x”): delete to x
dfx # 删除文本直到字符“x”(包括字符“x”): delete forward x
diw # 不管位于单词什么位置都能删掉一个单词,但 dw 只能删掉以当前字符为起点的单词

博主注

介词的i 和 a 好像没什么区别啊

# 感觉还是 dt 和 df 、 ct 和 cf 最实用
dt; # 可以直接删到‘;’了,再也不用考虑 2dw 还是 3dw 了
ct; # 可以直接改到‘;’了
dt. # 可以直接删到'.'了
ct. # 可以直接改到'.'了
dt) # 可以直接删到')'了
ct) # 可以直接改到')'了

什么才叫编译器之神啊,战术后仰

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值