-
lllll
查看全部 -
lllll
查看全部 -
vim normal模式下的复制粘贴和insert模式不太一样
normal 模式:
noraml模式下复制粘贴使用y(yank)和p(put), 剪贴d和p
可以使用v(visual)命令选中所要复制的地方,然后使用p粘贴
yiw复制一个单词,yy复制一行
insert模式下的复制粘贴
vimrc设置autoindent,可以自动缩进,但粘贴python代码会格式混乱
这个时候使用:set paste 和:set nopaste解决
vim不使用单一剪贴板进行剪贴,复制与粘贴,而是多组寄存器
通过"{register}前缀可以指定寄存器,不指定默认用无名寄存器
"ayjw复制一个单词到寄存器a中,"bdd删除当前行到寄存器b中。
除了a-z寄存器,系统剪贴板"+
使用系统剪贴板,vim里的内容可以与这个系统内的其他共享,但服务器那边只能:set paste和:set nopaste
:set clipboard=unnamed可以让你直接复制粘贴系统剪贴板内容
:echo has("clipboard")查看系统是否支持clipboard 0为不支持,1为支持
:reg 查看寄存器内容
查看全部 -
vim的文本对象(text object)
[number]<command>[text object]
number表示次数,command是命令, d(elete), c(hange), y(ank)
text object是要操作的文本对象, 比如单词w,句子s,段落p
主要使用的有iw, inner word, 如果使用viw,那么v进入选择模式,iw选择当前单词
aw 表示around word,不但会选中当前单词,还会包含当前单词之后的空格。
查看全部 -
多文件操作相关的概念:
Buffer是指打开的一个文件的内存缓冲区
Window是Buffer可视化的分割区域
Tab可以组织窗口为一个工作区
同一个Buffer的文件,修改一个就会影响到全部
Buffer
vim打开一个文件后会加载文件内容到缓冲区,修改是在缓冲区修改,并不会直接保存到文件,直到执行:w(write)的时候才会把修改内容写入到文件里。
使用:ls 会列举当前缓冲区,然后使用:b n 跳转到第n个缓冲区
使用:e a.txt可以另外打开一个文件
:bpre :bnext :bfirst :blast
:b buffer_name 可以使用tab补全来跳转
window窗口
一个缓冲区与可以分割成多个窗口,每个窗口也可以打开不同缓冲区
ctrl + w 停一下 按s 水平分割
ctrl + w 停一下 按v 垂直分割
或者:sp 和:vs
切换窗口: ctrl + w 按 w h/j/kl
查看全部 -
vim替换命令
:[range] s[ubstitute]/{pattern}/{string}/[flags]
range表示范围 比如 :10, 20 表示10-20行, %表示全部
pattern是要替换的模式,string是替换后文本
Flags有几个常用的标志
g(global) 表示全局范围内执行
c(confirm)表示确认,可以确认或者拒绝修改
n(number)报告匹配到的次数而不替换,可以用来查询匹配次数
案例(精准将quack替换为jiao):
:% s/\<quack\>/jiao/g
查看全部 -
normal模式下:
vim增加字符
a/i/o A/I/O
vim快速删除
x快速删除一个字符
d可以配合文本对象快速删除一个单词
dw删除整个单词包括空格
daw删除整个单词包括空格
diw不包括空格
dd删除一行
dt) 删除直到)的内容
di)可以删除整个括号内的内容
数字加命令表示多次执行
vim快速修改
r(replace)替换一个字符
s(substitute)替换并进入插入模式
c(change)和d的用法差不多
vim查询
使用/或者?进行前向或者反向搜索
使用n/N跳转到下一个或者上一个匹配
使用*或者#进行当前单词的前向和后向匹配
查看全部 -
normal模式下
h 左移 j 下移 k 上移 l 右移
w/W 移到下一个word/WORD开头, e/E下一个word/WORD尾
b/B 回到上一个word/WORD开头,可以理解为backword
word指的是以非空白符分割的单词,WORD以空白符分割的单词
主要使用w和b
行间搜索移动:
使用f{char}可以移动到char字符上,t移动到char的前一个字符
;/,继续搜索下一个/上一个
大写的F表示反过来搜前面的字符
0移动到行首,$移动到行尾
vim页面移动
gg/G移动到文件开头/结尾
ctrl+o 快速返回上次编辑位置
H/M/L 跳转屏幕开头,中间,结尾(Head, Middle, Lower)
Ctrl + u, Ctrl + f上下翻页(upward, forward)
zz把屏幕置为中间
查看全部 -
终端命令行或者vim插入模式:
ctrl + h 删除上一个字符
ctrl + w 删除上一个单词
ctrl + u 删除当前行
在终端下
ctrl + a 定位到开始
ctrl + e 定位到结束
快速切换insert和normal模式
使用ctrl + [ 代替Esc
gi 可以快速跳转到最后一次编辑的地方并进入插入模式
查看全部 -
补全的功能
查看全部 -
visual模式
Normal模式下可以使用v进入visual选择
使用V选择行
使用ctrl+v进行方块的选择
查看全部 -
a append
i insert
o open a line below
A append after line
I insert before line
O append a line above
查看全部 -
jjj lll
查看全部 -
ffkkf
查看全部 -
majutsushi/tagbar
:TagbarToggle
lfv89/vi-interestingwords
<leader>k显示高亮
<leader>K清除高亮
查看全部
举报