-
ctrl+h 删除字符
ctrl+w 删除单词
ctrl+u 删除一行
ctrl+b 前移一个字符
ctrl+f 后移一个字符
ctrl+c/[ 功能同Esc 切换insert和normal模式
gi 快速进入编辑模式
查看全部 -
https://en.wikibooks.org/wiki/Algorithm_Implementation/Sorting/Quicksort#Python def qsort(L): if L == []: return [] return qsort([x for x in L[1:] if x< L[0]]) + L[0:1] + \ qsort([x for x in L[1:] if x>=L[0]])
查看全部 -
改造VIM
查看全部 -
个性化vimrc配置
查看全部 -
的设计费 了两口了
查看全部 -
众所周知,vim normal 模式使用了反人类的hjkl来移动
查看全部 -
反人类的hjkl
查看全部 -
tab 切换
查看全部 -
快捷切换窗口
查看全部 -
# 文本对象text object
命令格式:
[number]<command>[text object]
number 次数
command 命令 d(delete), c(change), y(yank), v(visual)
text object 文本对象 w(单词word), s(句子sentence),p(段落paragraph)
eg:
iw 插入单词
viw 选择模式插入单词
vaw around word 选中当前单词和单词之后的空格
vis/vas/vip/vap
vi(/)/</>/{/}/"/"/'/'
va(/)/</>/{/}/"/"/'/'
ciw 删除单词并插入
ci{ 删除{内容
插件 vim-go
查看全部 -
# 多文件操作
Buffer 打开一个文件的缓冲区
Window 可视化分割区域
Tab 组织窗口为一个工作区
1、Buffer
:ls 列举缓冲区
:b n 跳转到第n个缓冲区
:bpre :bnext :bfirst :blast
:b buffer_name tab补全
:e filename 打开文件
2、Window
一个缓冲区可以分割为多个窗口
每个窗口也可打开不同缓冲区
窗口可以无限分割
(1)窗口分割
<ctrl + w> + s 水平分割 :sp [filename]
<ctrl + w> + v 垂直分割 :vs [filename]
(2)窗口切换
<ctrl + w> + w 循环切换
<ctrl + w> + h 切换到左边
<ctrl + w> + j 切换到下边
<ctrl + w> + k 切换到上边
<ctrl + w> + l 切换到右边
(3)窗口移动
<ctrl + w> + H 移动到左边
<ctrl + w> + J 移动到下边
<ctrl + w> + K 移动到上边
<ctrl + w> + L 移动到右边
(4)重排窗口
:h window-size
<ctrl + w> + = 所有窗口等宽等高
<ctrl + w> + _ 最大化活动窗口高度
<ctrl + w> + | 最大化活动窗口宽度
n + <ctrl + w> + _ 把活动窗口的高度设为n 行
n + <ctrl + w> + | 把活动窗口的宽度设为n 行
3、Tab标签页
一系列窗口的容器:h tabpage
:tabnew {filename} 新标签中打开
:tabe[dit] {filename} 新标签中打开
<ctrl + w> + T 当前窗口移动到一个新标签页
:tabc[lose] 关闭当前标签页及其中的所有窗口
:tabo[nly] 只保留当前标签页,关闭其他标签页
:tabn[ext] {N} {N}gt 切换到编号N 的标签页
:tabn[ext] gt 切换到下一个标签页
:tabp[revious] gT 切换到上一个标签页
插件:ctrlp nerdtree
查看全部 -
# 搜索替换
substitute 支持正则
:[range]s[ubstitute]/{pattern}/{string}/flags
range 范围
eg:
10,20 表示10-20行
% 表示全部
pattern 替换模式
string 替换后文本
flags 替换标志位
g global 全局替换
c confirm 确认
n number 查询匹配次数而不替换
eg:
:% s/self/this/g # 替换 self->this
:1,6 s/self//n # 查询 计算有1-6行有多少个self
:% s/\<name\>/Name/g # 精确匹配单词
查看全部 -
# 增删改查
1、增加
Normal模式 a/i/o A/I/O
2、删除
Normal模式
x 删除一个字符
4x 删除4个字符
d(delete)
daw 删除单词和周围空格(delete around word)
diw 删除单词(dw)
dd 删除行
dt{char} 删除直到
d$ 删除到结尾
d0 删除到开头
2dd 删除两行
u undo 恢复操作
3、修改
Normal模式下
r replace 替换一个字符
eg: 光标下g ra g->a
c change
cw 删除单词进入插入模式 change word
ct{char} 删除到字符,进入插入模式
s substitute 删除并进入插入模式 eg: 4s 删除4个字符进入插入模式
R 不断替换多个字符
S 删除整行进行插入
C 删除整行进行插入
4、查询
/ 前向搜索
? 反向搜索
n/N 下一个或者上一个
\*/# 当前单词的前向和后向匹配
搜索结果高亮 :set hls (high light search)
:set incsearch
查看全部 -
111查看全部
-
# 快速移动
Normal模式下
1、字符移动
h左 j下 k上 l右
```
^
k
< h l >
j
v
```
2、单词移动
w/W 移动到下一个word/WORD开头
e/E 下一个word/WORD尾
b/B 回到上一个word/WORD开头,backword
word 非空白符分割的单词
WORD 以空白符分割的单词
:syntax on
3、行间搜索移动
f{char} 移动到char字符上
t{char} 移动到char前一个字符上 until
第一次没搜到,可以继续搜该行
分号; 下一个
逗号, 上一个
F反向搜索
4、水平移动
0 移动到行首第一个字符
^ 移动到第一个非空白字符
$ 移动到行尾
g_ 移动到行尾非空白字符
5、垂直移动
括号() 句子间移动
查看帮助 :help (
{} 段落之前移动
6、页面移动
gg 文件开头
G 文件结尾
ctrl + o 快速返回
H 屏幕开头head
M 中间middle
L 结尾lower
ctrl + u upword 上翻半页
ctrl + f forword 下翻半页
zz 把屏幕置为中间,当前行放中间
查看全部
举报