vim 编辑器命令整理

文章目录

  • 一、基本使用流程
  • 二、普通命令模式
    • (一)切换到插入模式(编辑/写入/输入)
    • (二)切换到可视模式(选择文本模式)
    • (三)切换至底行命令模式
    • (四)替换/修改
      • 1. 切换到替换模式
      • 2. 替换命令
      • 3. 修改替换(删除旧的,输入新的)
    • (五)互换位置
    • (六)字符大小写切换
    • (七)选择文本
    • (八)复制
    • (九)粘贴/恢复
    • (十)删除/剪切
    • (十一)重复前一个操作
    • (十二)标记(其实没啥用)
    • (十三)多行合并
    • (十四)文本行移动/缩进
    • (十五)撤回/撤销
    • (十六)游标移动
      • 1. 以词为单位移动
      • 2. 以字符为单位移动
      • 3. 按句子移动
      • 4. 按段移动
      • 5. 移动游标到匹配字符
      • 6. 查看游标所在行号
    • (十七)跨行移动文本内容/剪切文本内容
    • (十八)屏幕滚动命令
      • 1. 滚屏命令
      • 2. 分页命令
    • (十九)文档状态/统计文档信息
    • (二十)查找/搜索字符串
    • (二十一)查看历史命令
    • (二十二)查看历史搜索记录
    • (二十三)保存退出
    • (二十四)宏录制
    • (二十五)打开光标所在词的使用手册
  • 三、可视模式
    • (一)字符可视模式
      • 1. 选择文本
      • 2. 复制文本
      • 3. 删除文本
      • 4. 修改替换
      • 5. 文本行移动
      • 6. 大小写切换
      • 7. 合并多行
      • 8. 加密文本
      • 9. 保存文本
      • 10. 文本排序
      • 11. 移动光标
      • 12. 切换到插入模式
      • 13. 退出可视模式
    • (二)行可视模式
      • 1. 选择文本
      • 2. 复制文本
      • 3. 删除文本
      • 4. 修改替换
      • 5. 文本行移动
      • 6. 大小写切换
      • 7. 合并多行
      • 8. 加密文本
      • 9. 保存文本
      • 10. 文本排序
      • 11. 移动光标
      • 12. 切换到插入模式
      • 13. 退出可视模式
    • (三)块可视模式
      • 1. 选择文本
      • 2. 复制文本
      • 3. 删除文本
      • 4. 修改替换
      • 5. 文本行移动
      • 6. 大小写切换
      • 7. 合并多行
      • 8. 加密文本
      • 9. 保存文本
      • 10. 文本排序
      • 11. 移动光标
      • 12. 切换到插入模式
      • 13. 退出可视模式
  • 四、底行命令模式
  • 五、插入模式
    • (一)选择文本
    • (二)复制文本
    • (三)粘贴文本/插入寄存器的内容
    • (四)运算表达式
    • (五)删除文本
    • (六)移动文本
    • (七)移动光标
    • (八)临时切换到普通命令模式
    • (九)修改/替换
    • (十)搜索
    • (十一)退出插入模式
    • (十二)自动补全
    • (十三)翻页
  • 六、vim 命令打开文件及选项参数说明
  • 七、寄存器
  • 八、查看 vim 编辑器的帮助文档

Vim 和 Vi 都是多模式编辑器,不同的是 vim 是 vi 的升级版本,它不仅兼容 Vi 的所有指令,而且还有一些新的特性在里面。

下面讲解的 vim 功能都是基于以下的系统环境和软件版本:

Linux 内核版本:4.18.0-193.6.3.el8_2.x86_64
Linux 发行版本:CentOS Linux release 8.2.2004 (Core)
VIM 版本:8.0.1763
 
注:查看 vim 的各个选项使用说明:vim -h 或 vim --help;查看 vim 的版本信息:vim -v 或 vim --version

一、基本使用流程

Linux 系统的命令终端中,经常会使用 vi 或者 vim 编辑器编辑文件,基本操作流程如下:

  1. 在命令终端输入 vim /etc/liaowenxiong.txt 打开指定的文件,默认进入 vim 的“普通命令模式”(Normal Mode)
  2. 在“普通命令模式”下输入i 进入编辑界面,也就是 vim 的“插入模式”(Insert Mode)
  3. 编辑好之后按 Esc 返回到 vim 的“普通命令模式”
  4. 按冒号 : 进入 vim 的“底行命令模式”(Last Line Command Mode or Ex Command Mode)
  5. 输入 q! 或者 wq 返回到命令终端(也叫控制器)

二、普通命令模式

normal mode.

vi/vim 的默认模式就是普通命令模式,启动 vi/vim 就进入普通命令模式,在插入模式和底行模式下按 Esc 回到普通命令模式,该模式下常用的命令如下:

(一)切换到插入模式(编辑/写入/输入)

命令说明
i切换到插入模式,i在当前游标前(就是游标左边)插入字符
I在行首插入
a切换到插入模式,a在当前游标后(就是游标右边)插入字符
A在行末插入
o切换到插入模式,o在当前行后(就是当前行的下面)插入一个新行
O在当前行前(就是上面)插入一个新行

技巧:
假如我要一次性输入 30 个等号 =,可以在普通命令模式下,输入:30i=<esc>,就是先输入数量 30,接着按 i 切换到插入模式,接着输入 1 个等号 =,最后按 esc 返回普通命令模式,就成功插入 30 个等号 = 啦!这在插入分割线时非常有用哦~

(二)切换到可视模式(选择文本模式)

命令说明
v切换到按字选择文本的可视模式,所谓“可视”,就是被选中的字符会“高亮”显示
V 或 Shift + v切换到按行选择文本的可视模式,按上下箭头来选择行
Ctrl + v切换到按块选择文本的可视模式,按上下左右箭头来选择矩形区域。它选中屏幕上的一个矩形区域。以按下 Ctrl + v 的位置为一个角,光标所在位置为它的对角。

(三)切换至底行命令模式

命令说明
:切换到底行模式,可以在最底一行输入命令

(四)替换/修改

1. 切换到替换模式

命令说明
R按下大写的 R 键,屏幕左下角出现 --REPLACE--字样,说明你已经处于“替换模式”。此时输入字符可以连续替换光标及其后面的内容。注意:退格键(Backspace)在替换模式中被解释为:如果左边的内容被替换过,则恢复到原来的样子;如果没有被替换过,则光标向左移动。修改完毕后,按下 Esc 键回到“普通命令模式”。若新输入的字符数超过原有对应字符数,则多出部分就附加在后面。
#R若在命令 R 之前加上一个数字,例如 5R,则表示新输入的文本重复出现 5 次,但只取代一个被输入文本所覆盖的字符序列,当前行中未被覆盖的内容仍保留下来,只是位置相应右移。这个命令其实没有意义

2. 替换命令

命令说明
rr 命令用于替换光标所在位置的字符,具体操作是,先将光标移动到需要替换的字符处,按一下 r 键,然后输入新的字符,就完成了一次替换。再次替换需要再次按下 r 键才可以。注意,全程不会进入插入模式。其实整个操作还是在“普通命令模式”下完成的,所以这个命令并不算是切换到“替换模式”下
#r光标所在位置的字符起 # 个字符被 r 后所输入的新字符替换掉

3. 修改替换(删除旧的,输入新的)

文本内容的修改是指在编辑过程中,可以对文本中的某些字符,某些行进行修改,即用新输入的文本代替需要修改的老文本,它等于先用删除命令删除需要修改的内容,然后再利用插入命令插入新的内容。所以在使用修改命令后,vi/vim 进入到“插入模式”下,当输入完新的内容后,再按 Esc 回到“普通命令模式”。

命令说明
s该命令表示用随后输入的文本替换当前游标所在的字符。如果只用一个新字符替换游标所在字符,则s命令与r命令功能类似,如shrh的作用都是将游标所在字符变为h。但二者也有区别,r命令是在命令模式下替换,而s命令的工作模式是先删掉游标所在字符后进入插入模式,在插入模式下输入文字完成替换。
#s以输入的文本替换光标之后 # 个字符,包含光标所在位置的字符。即用 s 后输入的文本替换从光标所在字符开始及其后的 #-1 个字符(共 # 个字符)
S表示用新输入的文本内容替换光标当前行(整行,不管光标位于何列)。输入S后,光标所在行成为空行,切换到“插入模式”,光标停在行的开头
#S表示用新输入的文本替换光标所在行及其下面 #-1 行的文本内容。例如 3S,则表示有 3 行(包括光标当前行及其下面 2 行)要被 S 命令之后输入的正文所替换
cw输入该命令后,光标所在位置到词尾之间的字符被删除,并切换到“插入模式”,然后可以输入所需要的字符,输入完成之后按 Esc 回到“普通命令模式”,这样就完成了用所输入的内容替换光标位置至词尾的所有文本内容
c#w#cw替换游标后面 # 个词,包含游标所在位置的词在内。例如:c6w,就会删除游标后 6 个词,同时切换到插入模式中,接着可以输入新的内容。什么意思呢?就是游标所在位置的词以及后面的 5 个词被删除了,然后切换到插入模式,接着输入的内容就相当于是替换掉被删的 6 个词的内容。
c#l#cl修改(改写/替换)游标后的 # 个字母,包含游标所在位置的字符在内。
c3jj 表示向下,表示将游标所在行和下面3行都删除,即游标所在行到往下数的第 3 行之间的文本删除,然后进入“插入模式”
c3G输入c3G,游标所在行到第 3 行之间的文本删除,然后进入“插入模式”,注意是整个文档的第 3 行
c3kk表示向上,表示将游标所在行和上面3行都删除,会进入“插入模式”
c$修改从游标当前位置开始到本行末尾范围内的内容,先删除旧内容,进入“插入模式”,再输入新内容完成修改替换
CC命令和c$命令相同,可以修改从游标当前位置开始到行尾的内容。
#C当在命令C之前加上数字 # 时,表示可以修改指定行数的内容。例如,3C,表示把游标所在位置起之后(注意不是整行)直到下面两个整行的内容删除,替换成随后输入的内容
ccS 相同,修改游标所在行(不管游标处于该行的何列)的内容,即先删除光标所在行的文本内容成为空行,再进入“插入模式”,光标会跳到行首准备输入
#cccc之前加上数字 #,表示要从游标当前行算起,往后面数,一共修改 # 行的内容。例如,5cc 表示先删除游标所在行及其下面的 4 行,然后输入新的内容
#chc#h改写游标前 # 个字符,包含游标所在位置的字符在内

(五)互换位置

命令说明
xp光标位置的字符和光标后面一个字符位置互换

(六)字符大小写切换

命令说明
~反转光标下字符的大小写
gu直接输入 gu 将游标所在行及其下一行的英文字母转成小写
gU直接输入 gU 将游标所在行及其下一行的英文字母转成大写
guG游标所在行到文档的最后 1 行的英文字母转成小写
gu0 或者 gu^游标所在位置到行首的英文字母转成小写,不包含游标所在位置的字符
gu$游标所在位置到行尾的英文字母转成小写
gU$游标所在位置到行尾的英文字母转成大写
gu5k游标所在行及其上面 4 行中的英文字母转成小写,大写同理
gu5j游标所在行及其下面 4 行中的英文字母转成小写,大写同理
gu3l游标所在位置的字符及其右边的2个字符中的英文字母转成小写,大写同理
guH游标当前行至屏幕所显示文本的第 1 行的英文字母转成小写,大写同理
gUG游标所在行到文档的最后 1 行的英文字母转成大写
guL游标当前行至屏幕所显示文本的最后 1 行的英文字母转成小写,大写同理

总结:往左边的基本不包含游标所在位置的字符,而往右边的基本都会包含游标所在位置的字符

(七)选择文本

命令说明
ggvG按下 ggvG ,除了最后一行,选中剩余的全部文本,并进入可视模式下,选中的文本高亮显示
ggVG按下 ggVG 才是真正的全选文本,并进入可视模式下,选中的文本高亮显示

(八)复制

Vim 的拷贝与大家预期的方式可能略有不同。拷贝命令不是大家料想的 c。因为 c 表示“修改”,已经被占用了。Vim 用拉取(yank)来表示拷贝,简写为 y。

命令说明
yw将游标所在位置的字符到词尾的字符复制到缓冲区中
#ywy#w复制游标所在位置的词及其后面的 #-1 个词到缓冲区
yy复制游标所在行到缓冲区,所谓的缓冲区就是剪贴板,或者叫寄存器
y0从游标所在位置复制到行首
y$从游标所在位置复制到行尾
#yy例如:6yy表示拷贝从游标所在行往下数6行文字
yl复制游标后面的 1 个字符
#yly#l复制游标所在位置及其后面 #-1个字符
yh复制游标前面的 1 个字符
#yhy#h复制游标所在位置及其前面 #-1个字符
9,15 copy 169,15 co 169,15 t 16将第 9 行至第 15 行的文本内容,复制到第 16 行的后面
9,15 move 169,15 m 16将第 9 行至第 15 行的文本内容,移动(剪切)到第 16 行的后面
6 t .把第 6 行复制到当前行下面
6 t同上,只是省略了 .
. t $把当前行复制到文本末尾
t $同上
. m $将当前行移动到文本末尾
ggyG按下 ggyG 复制全部文本,注意:G 必须大写
y1Gygg复制游标所在行及其上面的所有行
yG复制游标所在行及其下面的所有行
yaw复制游标所在位置的词
yiw复制游标所在位置的词,好像和 yaw 效果一样
yas复制游标所在位置的句子
yit复制游标所在位置的标签的内容。例如:<table><tr><td>sfd</td></tr></table>,假设当前游标落在标签 <table>上,那么按下 yit 则会复制 <tr><td>sfd</td></tr>
yft复制游标所在行上从游标位置算起到后面第 1 个字符 t 。注意:指定字符也复制
yFt复制游标所在行上从游标位置算起到前面第 1 个字符 t 。注意:指定字符也复制
ytk复制游标所在行上从游标位置算起到后面第 1 个字符 t 的前一个字符
yTk复制游标所在行上从游标位置算起到前面第 1 个字符 t 的后一个字符
y/t复制游标所在行上从游标位置算起到后面第 1 个字符 t 之间的文本内容 。注意:指定字符没有被复制

(九)粘贴/恢复

命令操作说明
p将缓冲区(寄存器)的内容粘贴到游标所在位置的后面
P将缓冲区(寄存器)的内容粘贴到游标所在位置的前面
#p粘贴指定的寄存器的内容,常用来恢复被删除的内容,其中 # 为寄存器的名称,详见《vim 的寄存器/剪贴板》

(十)删除/剪切

命令说明
x删除游标所在位置的字符,注意此时没有进入“插入模式”,依旧是在“命令模式”下,相当于 dl
X删除游标所在位置前面的 1 个字符,相当于 dh
Shift + x删除游标所在位置前面的 1 个字符
#x删除游标所在位置的字符及其右边 #-1 个字符,共计删除 # 个字符。相当于 #dl。例如:6x 表示删除游标所在位置的字符及其后面5 个字符,共计删除 6 个字符;即游标所在位置的及其右侧 5 个字符,共计 6 个字符被删除。注意:包含游标所在位置的字符
#X表示删除/剪切游标所在位置的字符及其前面 #-1 个字符,共计删除 # 个字符。例如:6X 表示删除游标所在位置的字符以及前面5 个字符,共计删除 6 个字符
#dhd#h表示删除/剪切游标所在位置的字符及其前面 #-1 个字符,共计删除 # 个字符。
#dw删除游标所在位置的词及其后面的 #-1 个词,共计删除 # 个词。例如:输入 3dw,会将游标位置起后面的 3 个词的内容删除,包含游标所在位置的词
dw删除从游标位置起到词尾的字符,包含游标所在位置的字符
dd删除游标所在的行
#dd从游标所在行开始向后删除 # 行,例如:2dd 表示删除游标所在的行以及下面的 1 行,合计删除 2 行;3dd 表示删除游标所在的行,以及下面的 2 行,合计删除 3 行
D删除游标所在位置的字符到行尾
d$效果和D一样,删除至行尾,游标位置的字符一起删除
d0删除(剪切)游标所在位置到行首的内容,游标所在位置的字符保留
d^删除至行首,游标所在位置的字符保留
dj删除游标所在的行和下面的一行
d+回车dj 一样。删除游标所在的行和下面的一行
dG删除游标所在行至文档结尾处,游标所在行也删除
1dGd1G删除游标所在行至文档开始处,游标所在行也删除
dgg删除游标所在行至文档开始处,游标所在行也删除
d)删除从光标位置起到本句尾的全部字符,包含光标所在位置的字符
d}删除从光标位置起到本段落尾的全部字符,包含光标所在位置的字符
dH使用命令 dH 将会删除从“游标所在行”至“屏幕所显示文本的首行”的全部内容,“游标所在行”也删除
dM使用命令 dM 将会删除从“游标所在行”至“屏幕所显示文本的中间行”的全部内容,“游标所在行”也删除
dl删除游标所在位置的字符,类似 x
#dld#l删除游标所在位置的字符及其右边 #-1 个字符,共计删除 # 个字符。
dL使用命令 dL 将会删除从“游标所在行”至“屏幕所显示文本的底行”的全部内容,“游标所在行”也删除
daw删除游标所在位置的词
das删除游标所在位置的句子
d/f它将删除当前游标所在位置到下一个字符 f 之间的内容。输入完 d/f 后,要按下“回车键”才行。注意:指定字符保留
dfk删除游标所在位置到下一个字符 k。注意:指定字符也删除了
dFk删除游标所在位置到上一个字符 k。注意:指定字符也删除了
dtk删除游标所在位置到下一个字符 k 的前一个字符。注意:指定字符也删除了
dTk删除游标所在位置到上一个字符 k 的后一个字符。注意:指定字符也删除了

(十一)重复前一个操作

命令说明
.不要怀疑,这就是小数点,意思是重复前一个动作

(十二)标记(其实没啥用)

使用标记可以快速移动。到达标记后,可以用 Ctrl + o 返回原来的位置,按下 Ctrl + i 游标跳到后一个标记处

命令说明
m{a-z}使用小写英文字母标记光标所在位置,这是局部标记,只用于当前文件。貌似标记的名称只能取英文字母或者数字,而且是单个字符。例如:按下 m + a,是指按下 m 键,然后再按 a 键,则表示在光标所在位置打了一个标记,该标记取名为 a
m{A-Z}使用大写英文字母标记光标所在位置,这是全局标记。标记之后,退出 Vim,重新启动,标记仍然有效
`{a-z}游标移动到标记位置。例如:按下撇符号,再按下标记名称 a,游标则会移动到标记 a 所在的字符上。其实打标记,就是给某个字符打标记
'{a-z}移动到标记行的行首。例如:按下单引号,再按下标记名称 a,游标就会移动到标记 a 所在的行的行首,这里的行首是指行的第 1 个字符
``双撇号,移动到上次编辑的位置。" 也可以,不过 `` 是精确到列,而 " 精确到行 。如果想跳转到更老的位置,可以按 Ctrl + o,跳转到更新的位置用 Ctrl + i
`"移动到上次离开的地方
`.移动到最后改动的地方

(十三)多行合并

命令说明
J合并游标所在行及下一行为一行。合并后留有空格。如果在 J 命令之前给出一个数字n,例如3,则表示把光标当前行及其后面的2行(共3行)合并为一行
gJ合并游标所在行及下一行为一行。合并后不留空格

(十四)文本行移动/缩进

命令说明
>>将光标所在行右移 8 个空格。如果在 >> 命令之前给出一个数字 n,例如 4,则表示光标当前行及其下面的 3 行(共 4 行)都右移 8 个空格
<<其使用与>>命令相同,只是移动方向相反
>G光标所在行至文件末尾之间的所有行向右移动 8 个空格
<G光标所在行至文件末尾之间的所有行向左移动 8 个空格
zz将当前行移动到屏幕中央
zt当前行移到屏幕首行,当前行后面的内容超过 1 屏才行
zb当前行移到屏幕底行,当前行前面的内容超过 1 屏才行

(十五)撤回/撤销

命令说明
u如果您误执行一个命令,可以马上按下 u,撤回到上一个操作。按多次 u 可以执行多次撤回
2u撤销前面两次的操作
U撤销当前行中所有的改动,撤回到最初的状态
undo 5撤销 5 个改变,不知道怎么玩
undolist你的撤销历史
Ctrl + r重做最后的改动
earlier 4m回到 4 分钟前
later 55s前进 55 秒

(十六)游标移动

命令说明
#G例如:15G 表示移动游标至文章的第 15 行的行首
#↩游标向下移动 # 行,例如输入 5,再按下“回车键”,游标从游标所在行的下 1 行算起向下移动 5 行,即从光标所在行的下一行开始算起 5 行,不含光标所在行在内
G移动游标到文档最后一行的首个字符处
Shift + g移动游标到文档最后一行的首个字符处
gg移到游标到文档开始位置,文档第 1 行的首个字符处
0游标移动到所在行的第 1 个字符处,效果和 ^ 一样
$游标移动到所在行的最后 1 个字符处
#$将游标移动到游标所在行起之后的第 # 行的最后 1 个字符处,从游标所在行算起。例如:3$,将游标移至游标所在行起之后的第 3 行的最后 1 个字符处
^游标移动到所在行的第 1 个字符处
H将游标移至屏幕所显示文本的第 1 行的第 1 个字符处。注意:是当前屏幕显示文本的第 1 行,而不是整个文档的第 1 行
#H若在 H 命令之前加上数字 #,则将游标移至第 # 行的第 1 个字符处,注:从文档第 1 行开始算起
M将游标从屏幕的任意位置移至屏幕所显示文本的中间行的第 1 个字符处。如果当前屏幕已经充满,则移动到整个屏幕的中间行的第 1 个字符处;如果没有充满,则移动到所显示文本的中间行的第 1 个字符处
L将游标移到屏幕所显示文本的最后 1 行的第 1 个字符处。如果当前屏幕已经充满,则将游标移至屏幕最底行的第 1 个字符处;如果没有充满,则将游标移至屏幕所显示文本的最后 1 行的第 1 个字符处
#L若在 L 命令之前加上数字 #,则将游标移至从屏幕所显示文本的底行算起第 # 行的第 1 个字符处
j游标下移
#j游标向下移动到第 # 行,且所在列的位置不变。注:从游标所在行的下一行算起。例如,5j 游标向下移动到第 5
k游标上移
#k游标向上移动到第 # 行,且所在列的位置不变。
h游标左移
#h游标向左移动到第 # 个字符处,从游标左边第 1 个字符算起
l游标右移
#l游标向右移动到第 # 个字符处,从游标右边第 1 个字符算起
%移动到匹配的括号处。例如,光标现在处于左小括号 ( 位置,按下 % 就会把光标移动到与之匹配的右小括号 )
Ctrl + m游标跳到下一行首个字符处,效果与+Enter 相同
+Enter游标移动到下一行的第 1 个字符处
-游标移动到上一行的第 1 个字符处

1. 以词为单位移动

例如:{int k;
广义的词:两个词 {intk;
狭义的词:有四个词 {intk
Vim 中使用大写命令一般就是指将字作为广义来对待,使用小写命令就是作为狭义对待。

命令说明
w/W移动游标到下一个词的第 1 个字符处
e/E移动游标到下一个词的最后 1 个字符处。如果游标起始位置处于词内(即非词尾处),则该命令将把游标移到本词词尾;如果游标起始位置已经处于词尾,则该命令将把游标移动到下一个词的词尾
b/B移动游标到上一个词的第 1 个字符处。如果游标处于所在词内(即非词首),则该命令将把游标移至本词的词首;如果游标处于所在词的词首,则该命令将把游标移到上一个词的词首
ge移动游标到上一个词的最后 1 个字符处
Shift + →游标移到后面第 1 个单词的第 1 个字符处
Shift + ←游标移动到前面第 1 个单词的第 1 个字符处

2. 以字符为单位移动

在命令模式中使用 h、j、k、l 这 4 个字符控制方向,分别表示向左、向下、向上、向右。

3. 按句子移动

在 Vim 中,一个句子被定义为是以逗号,、句号.、问号?和感叹号!结尾,且其后面跟着至少两个空格或一个换行符的字符序列。这个句子的定义有问题!!句子后面未必有空格或者换行符吧!

命令说明
将游标移至上一个句子的开头
将游标移至下一个句子的开头

注意:要结合 Shift 键才行

4. 按段移动

在Vim中,一个段被定义为是以一个空白行开始和结束的片段

命令说明
{该命令将游标向前移至上一个段的开头
}该命令将游标向后移至下一个段的开头

注意:要结合 Shift 键才行

5. 移动游标到匹配字符

命令说明
f向后(游标后面)查找指定的字符,游标移动到该字符处。例如,某行(háng)为 you can you up, no can no bb,现在需要将游标移动到字符 p 处,则可以使用 fp 命令,这样游标就会迅速定位到字符 p 处。按下 ; 向后继续查找,按下 , 向前继续查找
F向前查找指定的字符,游标定位到该字符处。按下 ; 向后继续查找,按下 , 向前继续查找
t向后(游标后面)查找指定的字符,游标移动到该字符的前一个字符处。按下 ; 向后继续查找,按下 , 向前继续查找
T向前查找指定的字符,游标移动到该字符的后一个字符处。按下 ; 向后继续查找,按下 , 向前继续查找

注意:是匹配单个字符,不是单词!!!

6. 查看游标所在行号

命令说明
Ctrl+g列出游标所在行的行号

(十七)跨行移动文本内容/剪切文本内容

我们可以利用下面的步骤完成文本行(1行或者多行)从一个地方移至另外一个地方。

  1. 将光标移至待移动文本的首行
  2. #dd 命令(其中 # 为待移动的行数),此时 vim 把光标所在行起下面的 # 行文本删除,将其放入到 "1 寄存器中
  3. 接着将游标移动到要粘贴文本的地方
  4. 1p"1 寄存器的内容粘贴到游标所在行的下方

(十八)屏幕滚动命令

屏幕滚动命令是以屏幕为单位移动游标的,常用于文件的滚屏和分页。需要注意的是,屏幕命令不是游标移动命令,不能作为文本限定符用于删除命令中。

在普通命令模式下和插入模式下均可以使用屏幕滚动命令

1. 滚屏命令

命令说明
Ctrl+u将屏幕向前(文件头方向)翻滚半屏。可以在这命令之前加上一个数字 #,则屏幕向前翻滚 # 行。并且这个值被系统记住,以后再用 Ctrl+u 命令滚屏时,还滚相应的行数
Ctrl+d将屏幕向后(文件尾方向)翻滚半屏。可以在这命令之前加上一个数字 #,则屏幕向后翻滚 # 行。并且这个值被系统记住,以后再用 Ctrl+d 命令滚屏时,还滚相应的行数
Ctrl + e整个文档向上移动一行,但是光标所在位置不变。可以在这命令之前加上一个数字 #,则文档向上移动 #
Ctrl + y整个文档向下移动一行,但是光标所在位置不变。可以在这命令之前加上一个数字 #,则文档向下移动 #

2. 分页命令

命令说明
Ctrl+b将屏幕向文件首方向翻滚一整屏(即一页)。在命令之前加上一个数字 #,则屏幕向前移动 #
Ctrl+f将屏幕向文件尾方向翻滚一整屏(即一页)。在命令之前加上一个数字 #,则屏幕向后移动 #

(十九)文档状态/统计文档信息

命令说明
Ctrl+G在 vi/vim 状态行显示文档的状态信息,包括正在编辑的文件名、是否修改过、游标所在行号、文件的行数以及游标之前的行占整个文件的百分比
g + Ctrl + g对文档的行数、字符数、字节数进行统计,字符数-行数≈中文字数,其实就是扣掉每行的换行符,如果是 Windows 系统格式的文档,则是字符数-行数x2 ≈ 中文字数,因为 Windows 中换行符占 2 个字节,1 个字节是 1 个字符,那么 1 个换行符就被统计为 2 个字符,那么每行就多了 2 个字符

(二十)查找/搜索字符串

命令说明
*向后查找游标所在位置的词
g*向后查找游标所在位置的词,模糊查找
#向前查找游标所在位置的词
g#向前查找游标所在位置的词,模糊查找
/从游标所在位置起向后查找指定的字符串,其实在输入字符的时就自动进行全文匹配了(匹配的字符串黄色高亮显示),只是将游标所在位置后面的第 1 个匹配的字符串黑色高亮显示,按下回车键后,光标会移动到第 1 个匹配字符串的第 1 个字符处。具体操作:先输入 /,再输入要查找的字符串,再按下“回车键”。例如,输入 /people,会在游标后面匹配查找字符串 people,可以按n 移动游标到后一个匹配的字符串处或者按 N 移动游标到前一个匹配的字符串处
?从游标所在位置起向前查找指定的字符串。具体操作:先输入 ?,再输入要查找的字符串,再按下“回车键”。例如,输入 ?people,会在游标前面匹配查找字符串 people,可以按n移动游标到前一个匹配的字符串处或者按 N 移动游标到后一个匹配的字符串处
f游标所在行上从游标位置起向后查找指定的字符,; 重复前一个搜索,即继续向后搜索,, 重复前一个搜索,但是方向相反,即向前搜索
F游标所在行上从游标位置起向前查找指定的字符,; 重复前一个搜索,即继续向前搜索,, 重复前一个搜索,但是方向相反,即向后搜索
t游标所在行上从游标位置起向后查找指定字符的前一个字符,; 重复前一个搜索,即继续向后搜索,, 重复前一个搜索,但是方向相反,即向前搜索
T游标所在行上从游标位置起向前查找指定字符的后一个字符,; 重复前一个搜索,即继续向前搜索,, 重复前一个搜索,但是方向相反,即向后搜索

/f/F/t/T 的区别:

  1. / 能搜索字符串,f/F/t/T 只能搜索单个字符;
  2. 与指令 dyc 配合使用时,/ 指定的字符是被排除在外的,而 f/F/t/T 则是包含在内的

(二十一)查看历史命令

在普通命令模式下直接输入 q: 打开历史命令窗口,可以滚动鼠标滚轮上下滚动命令列表,或者使用上下箭头移动光标来选择命令,选择好命令后按下“回车键”即刻执行选中的命令。历史命令列表窗口如下图所示:
在这里插入图片描述
说明:

  1. 可以输入 :q 或者输入 <C-w>q 退出当前窗口
  2. 打开的其实是命令行历史缓冲区,在缓冲区中,可以像编辑文件一样编辑命令

(二十二)查看历史搜索记录

命令说明
q/q?查看搜索历史记录

(二十三)保存退出

命令说明
ZZ大写的 Z。若文档没有修改过,则不保存直接退出;若文档已经编辑过,则会保存文档后退出

(二十四)宏录制

命令说明
qa开始录制宏 a(键盘操作记录)
q停止录制
@a播放宏 a

(二十五)打开光标所在词的使用手册

命令说明
K打开光标所在词的 manpage

三、可视模式

也称之为“文本选择模式”。

(一)字符可视模式

在“普通命令模式”下按 v 则进入“字符可视模式”,在屏幕底部出现标识:-- VISUAL --。所谓“字符可视模式”就是选择文本的时候只能一个一个字符选择。

1. 选择文本

命令说明
↑↓←→从“普通命令模式”下按 v 键进入“字符可视模式”后,直接通过上下左右箭头键选择文本
w选择到下一个单词的开头
e选择到下一个单词的词尾
b选择到上一个单词的开头
gv重新选中上次选中的文本,这个命令不一定要进入“可视模式”下再执行,在“普通命令模式”下就可以按下此命令,然后会自动选中上次选中的文本,并且进入“可视模式”下

2. 复制文本

命令说明
y选择好文本后,按下 y 复制文本,并且返回到“普通命令模式”下
Y按下 Y 复制选中字符的所在行

3. 删除文本

命令说明
d选择好文本后,按下 d 删除文本,并且返回到“普通命令模式”下,当然你可以再按下 p 粘贴被删除的文本,所以实际上这个 d 相当于“剪切”功能
D删除选中字符所在行
x效果和 d 一样

4. 修改替换

命令说明
c更改被选中的文本。按下此命令后被选中的文本被删除,进入“插入模式”,此时可以在其中添加新文本,完成修改替换
C更改被选中的字符的所在行,也是先删除文本,再进入“插入模式”
s效果和 c 一样
r先按 r ,再输入新字符,则替换掉被选中的字符,并且返回到“普通命令模式”下

5. 文本行移动

命令说明
>按下 > 被选中的行向右移动8个空格,并返回到“普通命令模式”下
<按下 < 被选中的行向左移动8个空格,并返回到“普通命令模式”下

6. 大小写切换

命令说明
u将选中的文本中的大写字母全部转换成小写
U将选中的文本中的小写字母全部转换成大写
~大小写互相切换

7. 合并多行

命令说明
J按下大写的 J 可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行
gJ将高亮显示的文本内容合并为一行,行与行之间没有空格
.将光标所在行下面的文本行合并到光标所在行后面

8. 加密文本

命令说明
g?使用 g? 命令,可以使用 rot 13 算法来加密高亮显示的文本;针对同一个文本再次执行加密命令,就可以进行文本解密

9. 保存文本

在可视化模式下选好文本,然后输入 :write filename 命令,就可以将选中的字符所在的行内容保存到文件 filename 中,文件存放在当前工作目录下

10. 文本排序

在可视化模式下选中多行文本,然后输入 :sort 命令,则可以对选中的文本进行排序

11. 移动光标

命令说明
o将光标在选中的文本区域首尾切换,例如,光标在选中的文本区域的末尾,按下 o 光标跳到文本区域的开头位置

12. 切换到插入模式

命令说明
Shift + i切换到插入模式,光标跳到选中字符所在行首,在行首插入字符
Shift + a切换到插入模式,光标会后移一个字符,此时插入字符相当于是在光标后移前所在位置的后面插入字符

13. 退出可视模式

再次按下 v 退出“字符可视模式”

(二)行可视模式

在“普通命令模式”下按 Vshift + v 进入“行可视模式”,在屏幕底部出现标识:-- VISUAL LINE --。所谓“行模式”其实就是指在这种模式下,每次的选择都是按“行”来选定。

1. 选择文本

命令说明
按左右箭头键,按“行”选择文本,被选中的文本会高亮显示
gv重新选中上次选中的文本,这个命令不一定要进入“可视模式”下再执行,在“普通命令模式”下就可以按下此命令,然后会自动选中上次选中的文本,并且进入“可视模式”下

2. 复制文本

命令说明
y选择好文本后,按下 y 复制文本,并且返回到“普通命令模式”下

3. 删除文本

命令说明
d选择好文本后,按下 d 删除文本,并且返回到“普通命令模式”下,当然你可以再按下 p 粘贴被删除的文本,所以实际上这个 d 相当于“剪切”功能
x效果和 d 一样

4. 修改替换

命令说明
c按下 c 可更改被选中的文本。按下此命令后被选中的文本被删除,进入“插入模式”,此时可以在其中添加新文本,完成修改替换
s效果和 c 一样
r先按 r ,再输入新字符,则替换掉被选中的字符,并且返回到“普通命令模式”下

5. 文本行移动

命令说明
>按下 > 被选中的行向右移动8个空格,并返回到“普通命令模式”下
<按下 < 被选中的行向左移动8个空格,并返回到“普通命令模式”下

6. 大小写切换

命令说明
u将选中的文本中的大写字母全部转换成小写
U将选中的文本中的小写字母全部转换成大写
~大小写互相切换

7. 合并多行

命令说明
J按下大写的 J 可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行
gJ将高亮显示的文本内容合并为一行,行与行之间没有空格

8. 加密文本

命令说明
g?使用 g? 命令,可以使用 rot 13 算法来加密高亮显示的文本;针对同一个文本再次执行加密命令,就可以进行文本解密

9. 保存文本

在可视化模式下选好文本,然后输入 :write filename 命令,就可以将选中的字符所在的行内容保存到文件 filename 中,文件存放在当前工作目录下

10. 文本排序

在可视化模式下选中多行文本,然后输入 :sort 命令,则可以对选中的文本进行排序

11. 移动光标

命令说明
o将光标在选中的文本区域首尾切换,例如,光标在选中的文本区域的末尾,按下 o 光标跳到文本区域的开头位置

12. 切换到插入模式

命令说明
Shift + i切换到插入模式,光标跳到选中字符所在行首,在行首插入字符
Shift + a切换到插入模式,光标会后移一个字符,此时插入字符相当于是在光标后移前所在位置的后面插入字符

13. 退出可视模式

再次按下 V 退出“行可视模式”

(三)块可视模式

从“普通命令模式”下按Ctrl + v 进入到“块选择模式”下,在屏幕底部出现标识:-- VISUAL BLOCK --。所谓“块模式”就是指在这种模式下,按上下左右箭头(↑↓←→)可以选择矩形区域,它选中的是文本的一个矩形区域(block)

1. 选择文本

命令说明
↑↓←→按上下左右箭头(↑↓←→)可以在文本上选择一个矩形区域

2. 复制文本

命令说明
y选择好文本后,按下 y 复制文本,并且返回到“普通命令模式”下

3. 删除文本

命令说明
d选择好文本后,按下 d 删除文本,并且返回到“普通命令模式”下,当然你可以再按下 p 粘贴被删除的文本,所以实际上这个 d 相当于“剪切”功能
x效果和 d 一样

4. 修改替换

命令说明
c按下 c 可更改被选中的文本。按下此命令后被选中的文本被删除,进入“插入模式”,此时可以在其中添加新文本,完成修改替换
s效果和 c 一样
r先按 r ,再输入新字符,则替换掉被选中的字符,并且返回到“普通命令模式”下

5. 文本行移动

命令说明
>按下 > 被选中的行向右移动8个空格,并返回到“普通命令模式”下
<按下 < 被选中的行向左移动8个空格,并返回到“普通命令模式”下

6. 大小写切换

命令说明
u将选中的文本中的大写字母全部转换成小写
U将选中的文本中的小写字母全部转换成大写
~大小写互相切换

7. 合并多行

命令说明
J按下大写的 J 可以将高亮显示的文本内容合并为一行,同时以空格来分隔各行
gJ将高亮显示的文本内容合并为一行,行与行之间没有空格

8. 加密文本

命令说明
g?使用 g? 命令,可以使用 rot 13 算法来加密高亮显示的文本;针对同一个文本再次执行加密命令,就可以进行文本解密

9. 保存文本

在可视化模式下选好文本,然后输入 :write filename 命令,就可以将选中的字符所在的行内容保存到文件 filename 中,文件存放在当前工作目录下

10. 文本排序

在可视化模式下选中多行文本,然后输入 :sort 命令,则可以对选中的文本进行排序

11. 移动光标

命令说明
o将光标在选中的文本区域首尾切换,例如,光标在选中的文本区域的末尾,按下 o 光标跳到文本区域的开头位置

12. 切换到插入模式

命令说明
Shift + i切换到插入模式,光标跳到选中区域左上角
Shift + a切换到插入模式,光标跳到选中区域右上角

13. 退出可视模式

再次按下 Ctrl + v 退出“块可视模式”

四、底行命令模式

It’s called command mode or ex mode.

在“普通命令模式”下输入 : 进入“底行命令模式”下。“底行命令模式”也称之为“ex 命令模式”,因为以冒号 : 开头的命令基本都是 ex 命令。所以“底行命令模式”下的相关命令详解请参见《vim 下的 ex 指令》。

五、插入模式

该模式也可以叫输入模式、编辑模式、写入模式等。

(一)选择文本

无法选择文本,只能返回到“普通命令模式”下,再进入“可视模式”下进行选择

(二)复制文本

快捷键说明
Ctrl + y对应正上方的行,挨个复印字符。非常有意思的命令。
Ctrl + e与上个命令类似,但拷贝的是下方的行

(三)粘贴文本/插入寄存器的内容

快捷键说明
<C r>{register}将寄存器的内容插入到光标所在的位置

(四)运算表达式

命令说明
C-r =先按下 C-r,接着按 =,再输入运算表达式,再按下“回车”,就能在光标处插入计算结果

(五)删除文本

快捷键说明
Back Space退格键,删除光标后(光标右边)一个字符,Fn+Del就是Back Space
Del删除键,删除光标前一个字符
Ctrl + w删除光标左边的单词
Ctrl + u从此处删除到行首的第一个非空字符

注:上述不是命令,而是快捷键

(六)移动文本

好像不行

(七)移动光标

快捷键说明
Home移动光标到行首,MacBook 的键盘使用 Fn+←就是Home
End移动光标到行尾,Fn+→就是End
Shift + ←移动到前一个单词
Shift + →移动到后一个单词

(八)临时切换到普通命令模式

快捷键说明
Ctrl + o进入命令模式并在执行一个命令后自动返回插入模式。很常用

(九)修改/替换

命令说明
Insert切换光标为输入/替换模式,光标将变成竖线/下划线,MacBook 内置键盘下没有此键

(十)搜索

好像不行

(十一)退出插入模式

退出插入模式,返回到普通命令模式。

命令说明
Esc退出输入模式,切换到“普通命令模式”
<C [>同上

(十二)自动补全

命令说明
Ctrl + N所谓补全,就是你按下这个组合键,会出来一个列表,当前所有打开的窗口中与光标所在位置的字符或字符串有关的词会出现在这个列表中

在这里插入图片描述

(十三)翻页

命令说明
Page Up上翻页,Fn+↑就是Page Up
Page Down下翻页,Fn+↓就是Page Down

六、vim 命令打开文件及选项参数说明

命令说明
vim -c command filename在打开文件前,先执行指定的命令
vim -r filename恢复上次异常退出的文件
vim -R filename以只读的方式打开文件,但可以强制保存,因为不能增减内容,那这个保存意义又何在呢?
vim -M filename以只读的方式打开文件,不可以强制保存
vim -y num filename将编辑窗口的大小设为 num 行
vim + filename从文件的末尾开始。例如:vim + text.txt,游标会默认停留在文档最后 1 行的第 1 个字符处
vim +num filename从第 num 行开始。例如:vim +3 text.txt,游标会默认停留在文档的第 3 行的第 1 个字符处。注意:加号 + 与数字之间不能有空格
vim +/pattern filename打开文件后,游标会停留在第一个含有 pattern 的行的第 1 个字符处
vim +n filename打开 filename 文件后游标跳到第 n 行的第 1 个字符处
vim + filename打开文件 filename 后跳到最后一行
vim -x filename开始编辑一个加密的文件
vim -o files以水平分割的多个窗口形式同时打开多个文件。例如:vim -o a.txt b.txt c.txt
vim -O files以垂直分割的多个窗口形式同时打开多个文件
vim -O5 a.txt b.txt打开 5 个垂直分割的窗口,其中两个显示 a.txt,b.txt 的内容,另外 3 个为空的窗口
vim -p files以多标签形式同时打开多个文件,每个文件占用一个标签页
vim files同时打开多个文件,打开后使用 next、previous 等指令切换
vim -d files垂直打开多窗口,并且进行比较
vimdiff files垂直打开多窗口,并且进行比较
vim -hvim --help查看命令 vim 的帮助文档

七、寄存器

  1. "ayy 把游标所在行的内容复制到 a 寄存器中。大小写英文字母表示寄存器的名称。其实是创建了一个以名称为 a 的寄存器,该寄存器存放了当前游标所在行的文本内容,可以在底行命令模式下输入 reg 查看下

  2. ""yy 表示把游标所在行的内容追加到默认的寄存器中

  3. "*yy 把游标所在行的内容放入当前选择缓冲区

  4. "+yy 把游标所在行的内容放入系统剪贴板

关于寄存器的其它内容可以参见《vim 的寄存器/剪贴板》

八、查看 vim 编辑器的帮助文档

命令说明
h[elp]按回车,打开总的帮助
help {command}对于任何一个 vim 指令,都可以输入 help 然后输入命令名称,查看相关的帮助文档
F1打开总的帮助文档,这个不是 ex 指令,在“普通命令模式”下按下 F1 键,有些电脑要结合 Fn 键才行
help user-manual打开用户手册。命令帮助的格式为:第一行指明怎么使用那个命令; 然后是缩进的一段解释这个命令的作用;然后是进一步的信息
helptags somepath为 somepath 中的文档生成索引,不知道干嘛的
helpgrep可以搜索整个帮助文档,匹配的列表显示在 quickfix 窗口中。Ctrl + ] 跳到含有光标所在位置的词的 tag 主题,Ctrl + t 跳回。
ver显示版本信息
help version## 是主版本号,例如 vim 8.0,你可以输入 help version8,再按 <Enter>,查看版本信息。

注:没有特别说明的命令,都是在“底行命令模式”下执行的命令,记得按下“回车”哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

activiti dmn_端到端BPM(带有DMN标记)

activiti dmn下周的红帽峰会即将成为有史以来最好的峰会之一&#xff01; 而且&#xff0c;如果您是Drools或jBPM的狂热者&#xff0c;您会很忙 &#xff1a;Signavio和Red Hat之间的合作伙伴关系是我们为您准备的另一个顶级演讲。 邓肯道尔&#xff08;Duncan Doyle&#xff…

netbeans 9_NetBeans 9抢先体验

netbeans 9Java 9即将来临&#xff0c;NetBeans 9也即将来临。在本文中&#xff0c;我们将看到NetBeans 9 Early Access为开发人员提供的支持&#xff0c;以帮助他们构建Java 9兼容的应用程序。 Java 9提供了许多&#xff08;大约90种&#xff09; 新功能&#xff0c;包括模块…

同一个ip能否两次加入组播_组播IGMPv1/v2/v3精华知识汇总

闲言少叙&#xff0c;直奔主题&#xff0c;开说之前先做点铺垫&#xff0c;回顾一下网络的基础知识。D类地址划分回顾组播是IPv4地址分类中的D类&#xff0c;我们回顾一下IPv4的地址划分A类&#xff1a;首bit0&#xff0c;0-127网段&#xff0c;网络掩码8&#xff0c;其中0.0.0…

弹窗要打开或保存来自_如何让 PopClip 支持印象笔记客户端:保存到印象笔记amp;高亮文字...

自从印象笔记品牌独立并发布新APP后&#xff0c;Mac系统下很多工具不再支持与印象笔记客户端进行联动&#xff0c;PopClip 就是其中之一。目前 Popclip 官方并未将印象笔记加入到插件的支持中&#xff0c;不过我们可以手动修改来解决这个问题。Popclip 之所以不支持新版本的印象…

vue 混入对象_特性和混入不是面向对象的

vue 混入对象让我立刻说&#xff0c;我们将在这里讨论的功能是那些迫切需要进行放线手术的人带给面向对象编程的纯粹的毒药 &#xff0c;就像David West在他的《 Object Thinking》一书中所建议的那样。 这些功能具有不同的名称&#xff0c;但是最常见的是traits和mixins 。 我…

glup node 内存不够_Redis:内存被我用完了!该怎么办?

介绍Redis是一个内存数据库&#xff0c;当Redis使用的内存超过物理内存的限制后&#xff0c;内存数据会和磁盘产生频繁的交换&#xff0c;交换会导致Redis性能急剧下降。所以在生产环境中我们通过配置参数maxmemoey来限制使用的内存大小。当实际使用的内存超过maxmemoey后&…

pytest框架_Python最火的第三方开源测试框架——pytest

一、介绍本篇文章是介绍的是Python 世界中最火的第三方单元测试框架&#xff1a;pytest。它有如下主要特性&#xff1a;assert 断言失败时输出详细信息(再也不用去记忆 self.assert* 名称了)自动发现测试模块和函数模块化夹具用以管理各类测试资源对 unittest 完全兼容&#xf…

jvm jstat_使用jstat的JVM统计信息

jvm jstat过去&#xff0c;我已经写过关于Oracle和/或OpenJDK Java开发工具包&#xff08;JDK&#xff09;附带的几个命令行工具的信息&#xff0c;但是我从来没有专门写过jstat工具 。 Oracle JDK 9文档Early Access指出jstat用于“监视Java虚拟机&#xff08;JVM&#xff09;…

win10录屏工具_win10怎么录屏?这才是最长情陪伴你的录屏工具

win10怎么录屏&#xff1f;现在看视频的用户是越来越多了&#xff0c;一些经验类的视频教程越来越多&#xff0c;不仅能够教我们学习技能&#xff0c;也能给我们看一些会员才能看的视频内容&#xff0c;他们怎么怎么做的呢&#xff1f;当然是电脑录屏了&#xff0c;由于现在的电…

python多行注释符号_涨知识Python 为什么用 # 号作注释符?

- START -关于编程语言中的注释&#xff0c;其重要性基本上已为大家所共识。然而关于注释的规范&#xff0c;这个话题就像我们之前聊过的缩进、终止符和命名方式一样&#xff0c;众口难调。注释符通常可分为两种&#xff0c;即行注释与块注释(inline/block)&#xff0c;它们在不…

Sublime Text如何安装和卸载插件

文章目录如何查找插件如何安装插件通过包控制器安装插件手动安装插件如何卸载插件如何查找插件 建议先通过插件库来搜索你想要的插件&#xff0c;找到你想要的插件之后&#xff0c;你再选择安装方式进行安装&#xff0c;搜索插件请点击以下链接&#xff1a; Package Control中…

@insert 对象_python中列表插入append(), extend(), insert()

1 append()append&#xff1a;只能接收一个参数&#xff0c;并且只能添加在列表的最后。添加数字 In [1]: a [1,2,3] In [2]: a.append(4) In [3]: a Out[3]: [1, 2, 3, 4] 添加字符串 In [6]: a [1,2,3] In [7]: a.append("daniel") In [8]: a Out[8]: [1, 2, 3, …

常用jdk的命令行工具:_jhsdb:JDK 9的新工具

常用jdk的命令行工具:我喜欢在分析性能和基于Java的应用程序的其他问题的早期步骤中使用JDK随附的命令行工具&#xff0c;并在诸如jcmd &#xff0c; jps &#xff0c; jstat &#xff0c; jinfo &#xff0c; jhat和jmap &#xff0c; jrunscript &#xff0c; jstack之类的 工…

佳能2900打印机与win10不兼容_佳能2900打印机和惠普1020哪种好 佳能2900打印机和惠普1020对比【详解】...

现在的人们早已经习惯遇到身边美丽的景色&#xff0c;就用手机进行拍摄下来了&#xff0c;若想长久的留住这一刻的美好&#xff0c;拥有一台 打印机 就是很不错的选择&#xff0c;如今打印机的需求量在不断的增加&#xff0c;市面上的打印机品牌也在不断的增多&#xff0c;我们…

mysql 多表查询 join on_mysql多表查询

在做连表查询的时候&#xff0c;可以在联合的字段上面&#xff0c;分别加上索引字段&#xff0c;这样有加快搜索的速度左右连表查询时条件放在on后面和where后面的执行时机是不一样的例如test1表test2表执行SELECT * FROM test1 t1 LEFT JOIN test2 t2ON t1.not2.no AND t2.nam…

redis key失效的事件_《分享几道高频 Redis 高频面试题,面试不用愁》

1、说说 Redis 都有哪些应用场景&#xff1f;缓存&#xff1a;这应该是 Redis 最主要的功能了&#xff0c;也是大型网站必备机制&#xff0c;合理地使用缓存不仅可以加 快数据的访问速度&#xff0c;而且能够有效地降低后端数据源的压力。共享Session&#xff1a;对于一些依赖 …

解决文件内容的中文乱码_字符集_字符编码_字符编码方案

从第三方下载的java源文件&#xff0c;打开查看里面的中文全部是乱码&#xff0c;无论你使用什么字符编码集都无法正常显示&#xff0c;该文件是用UTF-8编码存档的&#xff0c;使用UTF-8解码也同样是乱码&#xff0c;相信很多人遇到类似的问题&#xff0c;我这里解决过一个经典…

rust为什么显示不了国服_捋捋 Rust 中的 impl Trait 和 dyn Trait

缘起一切都要从年末换工作碰上特殊时期, 在家闲着无聊又读了几首诗, 突然想写一个可以浏览和背诵诗词的 TUI 程序说起. 我选择了 Cursive 这个 Rust TUI 库. 在实现时有这么一个函数, 它会根据参数的不同返回某个组件(如 Button, TextView 等). 在 Cursive 中, 每个组件都实现了…

mysql不支持子查询_MySQL不支持子查询优化一例

一创建表 create table tt1(id int primary key, c1 INT);create table tt2(id int primary key, c2 INT);insert into tt1 value一创建表create table tt1(id int primary key, c1 INT);create table tt2(id int primary key, c2 INT);insert into tt1 values(1,1),(2,2),(3,3…

Mysql索引使用情况_介绍mysql索引失效的情况

mysql视频教程栏目索引失效的情况。索引对于MySQL而言&#xff0c;是非常重要的篇章。索引知识点也巨多&#xff0c;要想掌握透彻&#xff0c;需要逐个知识点一一击破&#xff0c;今天来先来聊聊哪些情况下会导致索引失效。图片总结版相关免费学习推荐&#xff1a;mysql视频教程…