欢迎光临散文网 会员登陆 & 注册

【笔记】BV1x7411H7wa P3

2022-12-18 11:27 作者:渚_花  | 我要投稿

笔记整理自 BV1x7411H7wa P3


使用vim编程大概20小时,你的编程速度就会加快到和用之前的编辑器一样。然后,你就会变得越来越快


vim有不同的模式,在不同的模式下,相同的按键可能会产生不同的行为。


vim刚打开的时候是normal mode。这个模式的组合键的行为只有一种。

从normal node到insert mode ,按 I 键,从insert mode到normal mode,按esc键。


同时按下 Ctrl 和 V 操作,可以有以下几种表示方式

^V  Ctrl-V <C-V>


normal mode 用于浏览文件,阅读文件等

insert mode 用于键入文件,对于大多数来自键盘的键入,会进入文本缓冲区


08:15截图

不同模式的转换

下面是上文没提到的其余模式,以及从normal mode到此模式的按键

replace mode : r

visual mode : v

visual line : s-v 即 shift + v

visual block : c-v

command line mode : colon key (冒号)

从上述模式跳转到normal mode 用 esc。但是按esc有些不方便,所以很多人将其重新绑定到大写锁定键,相应方法请自行百度(因为原视频里也没说)。


vim的核心思想是modal editing。

打开vim的方法是,在命令行输入vim。vim可以带有文件作为参数,这样可以在打开vim同时打开这个文件。

```bash

> vim

> vim editors.md

```

第一行命令只会打开vim,第二行命令会打开vim和editors.md文件。

没有配置的vim是没有行号的,如果想要视频效果的行号,需要自行配置。

笔者注:可以参考此篇 http://t.zoukankan.com/argenbarbie-p-4116141.html


11:19

insert mode

刚刚进入vim时,是normal mode,按下 i 后,左下角提示 -- INSERT -- ,表示已经进入insert mode。在insert mode下, 键盘键入的字符会插入在光标所在处(例如截图的最左上角蓝色光标)。

将手从鼠标移动到键盘很费时间,当你大脑高速运转的时候,也许你并不想浪费这几百毫秒的时间。所有的vim操作都可以通过键盘进行。

12:38

command mode

如果你想在vim运行期间进行打开文件等,可以先进入 command mode。进入command mode后,屏幕最下方会出现以冒号开头的命令行,光标跳转到底部。

如何退出vim:很多程序都可以使用ctrl+c (^C),但是这并不能退出vim。(视频中)退出vim的方法是 : 进入command mode,然后输入 quit,然后回车。

quit命令的简写是q。所以直接输入 :q 也能退出vim。

:w 命令可以保存文件

注:  关于退出vim,可以参考这篇 https://blog.csdn.net/qq_43768851/article/details/121629428 。 :wq 命令可以保存并退出文件


:help 命令可以用来获取对于键盘上指定键或者指定命令的帮助信息。例如下面的命令可以获取 :w 相关的帮助信息。

:help :w

15:15

help :w 帮助内容

使用 :q 可以关闭帮助信息页面

需要注意的是,下面两个的区别。执行第一行后显示的帮助信息是关于,在normal mode 按下w会发生什么,而第二行的帮助信息是关于输入 :w命令后会发生什么

:help w

:help :w

vim和其他编辑器可能有很多不同。

vim可以创建很多个tabs,每个tab有一定数量的windows,每个window对应一个buffer。

18:34

这个截图最上面有两个tabs,一个是 editors.md ,一个是 \[No Name]。

当前tab有上下两个windows。

:q 命令并不会完全退出vim, 它只是关闭当前window,如果关闭当前window后没有window了,则关闭当前tab,关闭当前tab后没有tab了,退出vim。

:qa 可以关闭所有窗口 quit all


---


vim 中可以使用 hjkl 按键代替方向键移动光标。

h ←; j ↓ ;k ↑ ;l  →

w : 每次将光标向后移动一个单词的位置 word

b  :   每次将光标向前移动一个单词的位置 back

e  :   将光标移动到单词的结尾  end

0  :   将光标移动到行首

$  :   将光标移动到尾部

^  :   将光标移动到当前行第一个非空白字符的位置

^U 表示同时按下 ctrl 和 u

^U :   向上滚动  up

^D  :  向下滚动  down

需要注意的是下面的小写字母和大写字母的区别,G表示同时按下shift 和 g

G   :   跳转到文件末尾

gg :   跳转到文件开头

L     :   将光标移动到屏幕上最下面一行  low

M   :   将光标移动到屏幕中间 middle 

H    :   将光标移动到屏幕最上面一行 high

下面的内容中,f{char}表示,按下f之后按下一个按键,并将这个按键用{char}表示

f{char}   :   将光标移动到当前光标位置后面第一个字母{char}的位置

F{char}  :   将光标移动到当前光标位置前面第一个字母{char}的位置

t{char}   :   将光标移动到当前光标位置后面第一个字母{char}前一个字符的位置

T{char}  :   将光标移动到当前光标位置前面第一个字母{char}后一个字符的位置

24:36

↑按下fc之前的光标位置

↓按下fc之后的光标位置跳转到了之前光标位置后第一个c的位置

o :  在当前行下面开启一个新行,并进入 insert mode

O : 在当前行上面开启一个新行, 并进入 insert mode

26:14

↑按下o之前

↓按下o之后

d{motion}可以和其余命令结合起来,表示,删除从光标当前位置,到执行{motion}命令后的光标位置,两个位置中间的内容。例如

dw删除一个单词。

de删除从当前光标位置,到光标所在位置的单词的词尾的位置

u 可以进行撤销操作 undo  

c{motion}命令和d{motion}类似,相当于执行完d{motion}命令后,进入 insert mode。

dd 删除当前行

cc 删除当前行,并进入 insert mode


x 删除当前光标位置的字符

r{char} 将当前光标位置的字符替换为{char}

\^R   和undo相反,撤销按下u带来的undo  redo


y : 表示复制 copying yank

p : 表示粘贴,将内容粘贴到当前光标后面的位置 paste


y{motion} : 与d{motion}类似,但是并不是删除内容,而是将内容放到paste buffer中

yy :复制当前行


visual mode 可用来选择文本块。

进入visual mode后,可以使用normal mode 中的按键移动光标,例如 hjkl 上下移动, w 逐词移动等。在选择文本块完毕后,按下 y 进入到正常模式,选择的文本块会被放到 paste buffer 中。

31:47

visual mode
visual line
visual block

V 也可以进入visual line mode,一整行一整行选择文本。

^V 可以进入visual block mode, 选择文本的矩形块。


~  可以改变选定文本的大小写。


数字键可以用来执行多次操作,例如 4j 相当于 jjjj 即将光标位置向下移动4行,再比如, v3e 可以实现,进入visual mode,并选中3个词,的效果; 7dw 可以达到,删除7个词的效果。


下面用一个示例来解释  i  表示 inside 的时候的用法

ci[  表示 change inside [ ,即对于在方括号内部(inside)的内容 [ ] ,进行c 操作,就是删除方括号内部的内容,并进入编辑模式。同理, di( 表示删除小括号内部的内容

a 表示整个括号的内容,包括两端的括号,例如 all

da( 表示删除整个小括号里面的内容和两端的括号

% 百分号,可以跳转到与光标所在的括号配对的括号的位置。如果光标所在位置没有括号,则不进行任何操作


---


使用正斜杠可以在 vim 中搜索。按下 / ,然后输入想要搜索的内容,然后回车

39:27

敲下/range回车后, 光标跳到第二行的range位置

.  dot 表示重复先前的编辑命令







【笔记】BV1x7411H7wa P3的评论 (共 条)

分享到微博请遵守国家法律