我先抛个砖,想看看大家的分享:
ciw (删除当前单词并进入编辑模式)
ci{ (删除 {} 内的内容并进入编辑模式,同理可用于括号,双引号等,重写函数的时候非常好用)
ctrl o (编辑模式下暂时切换到 normal 模式,可以执行一条非编辑模式下的命令)
我先抛个砖,想看看大家的分享:
ciw (删除当前单词并进入编辑模式)
ci{ (删除 {} 内的内容并进入编辑模式,同理可用于括号,双引号等,重写函数的时候非常好用)
ctrl o (编辑模式下暂时切换到 normal 模式,可以执行一条非编辑模式下的命令)
|
1
第二条的大括号可以用大写 B 代替,小括号可以用小写的 b 代替,按起来舒服些
|
|
2
ciw 我还真不知道,不过看见过 viw ,vi{。作用是选中单词,用法和你上面举例一样
|
|
yzld2002Feb 6, 2023
3
@EyebrowsWhite #1 学到了,感谢!
|
|
4
:set paste 可以进入不丢失缩进的粘贴模式
|
|
nba2k9Feb 6, 2023
5
:q! :wq
记住这两个,别的什么都好说 |
|
7
1. ga 查看字符编码
2. <c-q> 输入编码得到字符 3. c-a,c-x 实现数字简单++--,(win 下要注意 unmap 掉这两个快捷键,默认可能因为 behave win 变成了全选跟剪切) 4. :e! 放弃修改重新加载文件 |
|
8
我习惯用 caw 从描述来看好像和 ciw 一样? 还有就是我比较喜欢用 ctrl+v 进行整列编辑
|
|
9
:x 保存退出
|
|
jdhaoFeb 6, 2023 via Android
10
这个叫 text object ,非常有用,绝对是使用 vim 的 top 必备技能
|
|
cluulzzFeb 6, 2023
12
ggdG,ctrl v
|
|
13
前两个都属于文本对象的操作,有时候写 html 的时候可以 cit/cat 删除整个 tag ,挺方便的。
就是一直想知道 vim 要如何实现类似 IDEA 里 <a-j> 的选中下一个单词(Select next occurrence) |
|
14
normal mode:
ctrl-a 让光标后面第一个数字 +1 ctrl-x 让光标后面第一个数字 -1 也可以通过 visual mode 控制操作的数字的范围 |
|
15
|
|
16
dit, dat, cit, cat, di", ci" ......
就像 @jdhao 说的, 很方便的 "modify" 特定范围的 "character sequences" `dit` means delete in tag(personaly) 在修改 xml 和 html 时候很有用 此外, di" 这种不一定要在引号中才能用, 他会自动向后寻找 e.g. "this is <光标>a 'example'" 在 <光标> 处 ci' 会自动删除 example 并进入 insert mode for more: h text-objects |
|
18
@acoada 多光标操作? 如果是这个需求的话可以插件 vim-visual-multi 实现
|
|
19
view xyz.txt (或者 vim -R xyz.txt)以只读模式打开文件,相当于 less xyz.txt 或 more xyz.txt
但是 是用 vim 查看文件 |
|
20
:o 插入新的一行并编辑
ctrl + v 进入视觉编辑模式 |
|
21
块操作: ^ <C-v> <C-d> I-- [ESC]
^ → 到行头 <C-v> → 开始块操作 <C-d> → 向下移动 (你也可以使用 hjkl 来移动光标,或是使用%,或是别的) I-- [ESC] → I 是插入,插入“--”,按 ESC 键来为每一行生效。 引用自《简明 Vim 练级攻略 | 酷壳 - CoolShell.cn 》 如果是在行尾添加的话,就在块操作之后,$到行尾,按 A 插入字符,然后 ESC 每行生效 |
|
22
还有个剪切板的操作
"+yy // 复制当前行到剪切板 "+p // 将剪切板内容粘贴到光标后面 |
|
23
: 1, 5 t .
可以使用命令模式快速复制某个区域的文本到当前光标位置,可以非常方便地在不需要移动光标进行复制 |
|
24
<a href="https://sm.ms/image/V5ZhlyA4uafmv7x" target="_blank"><img src="https://s2.loli.net/2023/02/06/V5ZhlyA4uafmv7x.png" ></a> 这个图不错
|
|
25
还有个,如果你安装了 jq ,那么可以用 `:%!jq .` 来格式化 json 文件,参考自 https://www.putorius.net/format-json-file-in-vim.html
|
|
26
@akring 第一条 ciw ,平时都是用 cw ,两个好像没区别,都是会进入编辑模式。
|
|
27
上面好多回复都是很基础的操作,建议看看《 Vim 实用技巧》——Drew Neil 著
|
|
28
@xuminzhong 当你在一个单词中间的时候,cw 只会把光标后的部分删掉并进入编辑模式,ciw 会把整个单词删掉。
|
|
30
知道 leader 键以后,设置和使用各种舒畅。
|
|
31
%d
清空全部内容。不知道这个命令之前我要按半小时删除键才能把内容删完😂 |
|
fuwu1245Feb 6, 2023
32
牛牛牛
这快捷键好使,谢谢楼主 |
|
mmcrossFeb 6, 2023
33
看完这个,关闭页面时,不由自主的输了个:
|
|
35
cia, 依赖 text-obj-args 插件,删除当前参数并进入编辑模式,对于有类型标注的编程语言来说,比 ciw 效率高至少一倍
|
|
36
<C-v> 选中某一块文本,然后按 c ,效果是删除这一块文本,然后插入新文本,最重要的是新插入的字符会应用到每一列中,可以在一定情况下替代多光标插件。相比于多光标插件,这个特性是内置的,按的键也比多光标插件少,在某些情况下会非常方便,尤其是处理日志的时候。
|
|
37
normal mode 下的 %,可以跳到匹配的代码块的另一端,查看、复制整段代码什么的很有用
JerBrains 里应该是 ctrl-m |
|
38
顺便楼上提到的 text object ,其实可以装插件扩展,GitHub 上搜 textobj user ,有很多第三方 text object ,我最常用的三个是 text-obj-line 用来选中当前行,textobj-url 选中当前链接以及 textobj-entire 选中当前 buffer 的所有文本。
|
|
39
我现在就会用 : 加个数字挑行,? 加文字搜索,:wq 保存退出,ZZ 没修改看一眼的文件直接退出,:q! 修改了但不想保存并退出,dd 删掉一行,i 插入。写点简单的都够用了。
对了,一旦某一天用 vim 用多了,我就习惯性地在 IDE 里先按下 Esc ,然后莫名在某个地方输入了 :wq ,之前老是保存这个东西。 |
|
ETiVFeb 6, 2023 via iPhone
40
哦对 GitHub 上可以搜到一个 server 用的 vimrc 配置文件,我现在在用这个(稍微改了一下)。
里面预置了不少快捷键,比如可以在 input mode 用 F2 切换 :set paste 啥的,都是超级实用的东西 |
|
41
|
|
42
set mouse=a
在终端 vim 中使用鼠标 |
|
geebosFeb 6, 2023
43
学到了,我一直是 b 移到头部再 cw
|
|
guss0x625Feb 6, 2023
44
.......
|
|
45
ctrl + v 进入竖编辑模式
选择一列数字 ctrl + a 选择的数字会递增 |
|
46
漏了个, 选中后按 g ( globaly) 再 ctrl + a
|
|
654656413245Feb 6, 2023
47
:wq 保存并退出,无论有无修改均更新时间戳
:x 保存并退出,无修改时不更新时间戳 |
|
48
Ctrl + o 的确用的最多。楼上好多没用过的命令,大家有没有汇总的手册可以随时查的?
|
|
lopdaFeb 6, 2023
49
e~请查阅《 Vim 实用技巧》😂
|
|
opengpsFeb 6, 2023
50
不应该是 Ctrl+C ,Ctrl+Q 吗?从 win 过来的新人都会犯的错误
|
|
52
cs"' change suround "" to ''
|
|
windy0925Feb 6, 2023
53
.
|
|
54
ZZ 保存并退出当前 buffer 。
|
|
windy0925Feb 6, 2023
55
敲错了直接发出去了。接上一条,就是.这个命令
|
|
xuminzhongFeb 6, 2023
56
@JackieMe 感谢,挺有用的,Got 。
|
|
57
|
|
notgodaFeb 6, 2023 via iPhone
58
@Sainnhepark 你好,请问 ctrl -c 是进入视觉编辑模式? 然后要怎么选中某一块文字呢?除了用鼠标之外
|
|
notgodaFeb 6, 2023 via iPhone
59
@Sainnhepark
@akring 请问大家在 vim 怎么选中某一块文字?是先 CTRL-v 进入进入视觉编辑模式? 然后要怎么选中?除了用鼠标之外。复制是用什么快捷键呢? +yy 只能复制当前行 |
|
xiaketFeb 6, 2023
60
宏然后批量 apply
|
|
lewis0xx001Feb 6, 2023
61
@szyp 66666~
|
|
webcape233Feb 6, 2023 via iPhone
62
进入 visual block 模式
向下按多行 键入 shift i 增删一些东西 按两下 esc 完成了多行编辑 |
|
testcase1Feb 6, 2023
63
gv
|
|
SainnheparkFeb 6, 2023 via Android
64
@notgoda hjkl 或方向键呀,你怎么在 visual mode 选的就怎么选呗
|
|
testcase1Feb 6, 2023
65
help substitute
|
|
testcase1Feb 6, 2023
67
vim.keymap.set("n", "j", "gj", opt)
vim.keymap.set("n", "k", "gk", opt) |
|
testcase1Feb 6, 2023
68
最后 最牛逼的 vim 命令 : nvim
|
|
ljpCNFeb 6, 2023
69
参见 vim cheat sheet: https://www.vimcheatsheet.com/
|
|
bjzhushFeb 6, 2023
70
说真的,现在看到这些命令都需要思考下才能明白了,但是我用起来一点问题没有,因为已经都是下意识操作了,十几年了
|
|
superrichmanFeb 6, 2023 via Android
71
那一定是 ctrl q, 因为 vim 里习惯性按到 ctrl s 就死了 🐶
|
|
mangoDBFeb 6, 2023
72
%s/foo/bar/g
replace 功能 |
|
simoFeb 6, 2023
73
qa -> q -> n@a
|
|
Al0rid4lFeb 6, 2023
74
gg=G
|
|
kergeeFeb 6, 2023
75
加密 :X(大写的 X)
16 进制显示 :%!xxd |
|
techstayFeb 6, 2023
76
浏览器常驻页面,忘了什么就在点进去看看 https://github.com/techstay/awesome-cheatsheets/blob/master/editors/vim.txt
|
|
gogorushFeb 6, 2023
77
yi 某个符号或者 w 。
w 代表当前的 word 某个符号代表某个符号限定范围内,特别适合复制“”,‘’这个符号内的内容 |
|
78
viw 选中单词
vi) 选中 '()'内的东西 同理:vi} 大括号 f 搜索 fb fa 选中右边第一个 b a 字母 ; 重复执行之前输入过的流程 比如 fb ; ; ; ; 一直搜索后面的 b 字母 |
|
dorothyRENFeb 6, 2023
79
@jorneyr #9 我选择 SHIFT+ZZ
|
|
macscsbfFeb 6, 2023
80
看《 vim 使用技巧》在学习中
|
|
nagFeb 6, 2023
81
分享下我的 vimrc 的几个配置
直接在 Normal 和 Visual 模式下直接用 Tab 和 Shift-Tab 缩进,这样就不用先进入 Insert 模式再按 tab: nmap <tab> v> nmap <s-tab> v< vmap <tab> >gv vmap <s-tab> <gv 按下 <leader>W 可以清除当前文件每一行中的最后的空格: nnoremap <leader>W :%s/\s\+$//<cr>:let @/=''<CR> |
|
FatinoraFeb 7, 2023
82
宏,vim 最强大的特性。
|
|
sanebowFeb 7, 2023 via iPhone
83
来说个简单好用的,xp ,当两个字符前后打反时可以调换过来,比如 mian -> main
|
|
pooorguyFeb 7, 2023
85
|
|
gw4gwFeb 7, 2023
86
进来学技能
|
|
xujiabinFeb 7, 2023
87
vep, 替换 word(从剪贴板)
|
|
wisetcFeb 7, 2023
88
:x close
|
|
likemeFeb 7, 2023
89
很少用 vim 了。。改文件都是用 idea 打开再上传 hhh
|
|
BingchunmoliFeb 7, 2023 via Android
90
只会 wq ! q 路过,说实话 open wrt 等各种奇怪设备有时 vim 有 bug 有时 nano 有 bug 换着用
|
|
mangoDBMar 9, 2023
91
:set nu # 显示行号
:set nonu # 关闭行号 :nohl # 关闭高亮 / 查找 ? 查找(反向) |