基于Centos环境下的Vim实用技巧

举报
乐维社区 发表于 2024/05/22 14:30:23 2024/05/22
【摘要】 在Linux世界中,Vim是一个功能强大、高度可配置的文本编辑器,它以其轻量级、速度和灵活性而闻名。对于运行在Centos环境下的系统管理员和开发者来说,掌握Vim不仅是一项基本技能,更是提高工作效率的利器。而Centos作为一个广泛使用的企业级Linux发行版,其稳定性和安全性使其成为服务器操作系统的首选。在Centos系统中,Vim不仅是一个文本编辑器,它还是一个强大的生产力工具,熟练使...

Linux世界中,Vim是一个功能强大、高度可配置的文本编辑器,它以其轻量级、速度和灵活性而闻名。对于运行在Centos环境下的系统管理员和开发者来说,掌握Vim不仅是一项基本技能,更是提高工作效率的利器。而Centos作为一个广泛使用的企业级Linux发行版,其稳定性和安全性使其成为服务器操作系统的首选。

Centos系统中,Vim不仅是一个文本编辑器,它还是一个强大的生产力工具,熟练使用Vim可以大大简化日常的文本编辑和文件管理任务。本文将为您提供一份详尽的在Centos环境下的Vim实用技巧。

一、vim简介

(一)Vim配置文件

RHELCentOS的配置文件是/etc/vimrcDebianUbuntu的配置文件是/usr/share/vim/vimrc

(二)三种基本模式

常用的只有3种模式:Normal ModeInsert ModeCommand-line Mode

Normal Mode进入Insert Mode,可以按iIaAoOrR即可。其中iI表示插入(Insert),rR表示替换(replace)。

Insert Mode进入Normal Mode,只需要按ESC键即可。

Normal Mode进入Command-line Mode,可以按“:”、“/”、“?”。其中“:”表示输入vim命令,“/”表示后面输入要向下搜索的字符串,“?”表示后面输入要向上搜索字符串。

Command-line Mode进入Normal Mode,只需要按ESC键即可了。

可以把Normal Mode理解为常态,进入其他任何一种模式,需要某种特殊方式,而从其他特殊模式回到Normal Mode,就按ESC键即可。

(三)最常用的配置

1.颜色设置

syntax on     开启代码高亮

syntax off     关闭代码高亮

syntax enable   开启代码高亮

2.搜索设置

set hlsearch   开启搜索高亮

set nohlsearch  关闭搜索高亮

set incsearch   输入搜索字符串的同时进行搜索

set ignorecase  搜索时忽略大小写

3.用户界面

set showmode       开启模式显示

set ruler         开启光标位置提示

set number          显示行号

set nonu         不显示行号

set cursorline      强调光标所在行

set cmdheight=1          命令部分高度为1

4.编辑辅助配置

set autoindent     自动缩进

set noautoindent    不自动缩进

set smartindent     智能缩进

set autoread      当文件在外部被改变时,vim自动更新载入

set showmatch      显示匹配的括号

二、常用的状态切换按键

(一)Normal Mode -> Insert Mode

i 小写字母i,在光标位置插入

a 小写字母a,在光标的下一个位置插入

I 大写字母I,在光标所在行的第一个非空格处插入

A 大写字母A,在光标所在行的最后一个字符处插入

o 小写字母o,在光标所在行的下一行处插入新行

O 大写字母O,在光标所在行的上一行处插入新航

r 小写字母r,替换光标所在处的字符一次

R 大写字母R,持续替换光标所在处的字符,直到按下ESC

(二)Normal Mode -> Command-line Mode

:w 保存文件

:w! 强制保存文件(前提是用户有修改文件访问权限的权限)

:q 退出缓冲区

:q! 强制退出缓冲区而不保存

:wq 保存文件并退出缓冲区

:wq! 强制保存文件并退出缓冲区(前提是用户有修改文件访问权限的权限)

:w <filename> 另存为名为filename文件

:n1,n2 w <filename> n1行到n2行的数据另存为名为filename文件

:x 如果文件有更改,则保存后退出。否则直接退出。

(三)Insert Mode -> Normal Mode

按下ESC

(四)Command-line -> Normal Mode

按下ESC

三、常用光标移动按键

(一)光标字符操作

j 向下

k 向上

h 向左

l 向右

$ 光标移动到行尾(End),注意要按Shift

0 光标移动到行首(Home

^ 光标移动到行首第一个非空白字符(Home),注意要按Shift

(二)光标词操作

w 光标移动到后一词的词首

W 光标移动到后一词的词首且忽略标点符号

e 光标移动到后一词的词尾

E 光标移动到后一词的词尾且忽略标点符号

b 光标移动到前一词的词首

B 光标移动到前一词的词首且忽略标点符号

(三)光标句操作

) 光标移动到后一句的句首

( 光标移动到前一句的句首

% 配合“(”和“)”使用,寻找相匹配的另一半

(四)光标行操作

G 光标移动到文档的最后一行的第一个非空白字符

nG 光标移动到文档的第n行,相当于”:n

gg 光标移动到文档的第1行的第一个非空白字符,相当于”1G”,也相当于”:1

<N> 光标向下移动N

(五)光标段操作

} 光标移动到下一段的段首

{ 光标移动到上一段的段首

% 配合“(”和“)”使用,寻找相匹配的另一半

(六)光标页操作

Ctrl+f 向下翻页(Pagedown

Ctrl+b 向上翻页(Pageup

Ctrl+d 向下翻半页

Ctrl+u 向上翻半页

H 光标移动到目前显示页的第一行

M 光标移动到目前显示页的中间行

L 光标移动到目前显示页的最后一行

(七)光标自由操作

Ctrl+o 回到光标的上一位置

四、常用编辑操作按键

(一)删除操作(delete

dd 删除光标所在行

ndd 删除从光标所在行开始,向下的n

d1G 删除从光标所在行开始,到第一行的所有行

dG 删除从光标所在行开始,到最后一行的所有行

d$ 删除从光标所在位置,到行尾的所有字符

d0 删除从光标所在位置,到行首的所有字符

(二)复制操作(yank

yy 复制光标所在行

nyy 复制从光标所在行开始,向下的n

y1G 复制从光标所在行开始,到第一行的所有行

yG 复制从光标所在行开始,到最后一行的所有行

y$ 复制从光标所在位置,到行尾的所有字符

y0 复制从光标所在位置,到行首的所有字符

(三)粘贴操作(paste

p 小写字母p,粘贴剪贴板中的数据,从光标所在行的下一行开始

P 大写字母P,粘贴剪贴板中的数据,从光标所在行的上一行开始

(四)撤销与重做操作(undoredo

u Undo)撤销上一个操作

Ctrl+r Redo)重做上一个操作

(五)重复操作

. 重复上一操作

(六)替换操作(replace

r 替换光标所在处字符

R 进入替换模式,直至按ESC退出

cc 替换光标所在行

cw 替换光标所在的英文单词

~ 转换大小写

(七)排版操作

:le<ft> 光标所在行左对齐

:ri<ght> 光标所在行右对齐

(八):ce<nter> 光标所在行居中

五、常用多缓冲区操作按键

(一)多文件编辑模式

  • argument list模式,就是在打开vim编辑器时,携带多个文件路径参数。
  • buffer list模式,就是在进入vim编辑器后,打开多个缓冲区进行编辑。

(二)单一缓冲区打开多个文件

:files 显示目前打开了哪些文件

:n 切换到下一个缓冲区内容

:N 切换到上一个缓冲区内容

:2n 切换到下下个缓冲区内容

:bn 下一个缓冲区内容(buffer next

:bp 上一个缓冲区内容(buffer previous

(三)多个缓冲区打开多个文件

:sp [filename] 打开一个新的缓冲区,如果有filename则内容为该文件,否则为当前文件

Ctrl+w n 新建一个缓冲区

Ctrl+w q 退出光标所在的缓冲区

Ctrl+w j 光标移动到下一缓冲区

Ctrl+w k 光标移动到上一缓冲区

Ctrl+w l 光标移动到右一缓冲区

Ctrl+w h 光标移动到左一缓冲区

Ctrl+w v 左右切割窗口新建缓冲区

Ctrl+w s 上下切割窗口新建缓冲区

Ctrl+w o 使光标所在缓冲区最大化,其他缓冲区隐藏

六、常用搜索与书签操作快捷键

(一)搜索字符串

/string 向下搜索字符串“string

?string 向上搜索字符串“string

(二)重复上次搜索

根据上次搜索条件找到下一个匹配的字符串
根据上次搜索条件找到上一个匹配的字符串

(三)搜索单词

向下搜索光标所在处的单词(完全匹配)

向上搜索光标所在处的单词(完全匹配)

g* 向下搜索光标所在处的单词(部分匹配)

g# 向上搜索光标所在处的单词(部分匹配)

(四)标记书签(mark

ma a为小写字母,为光标所在处设定文档书签a

mA A为大写字母,为光标所在处设定全局书签A

(五)使用书签(mark

到文档书签a处,Tab键上方
到文档书签a所在行行首处,Enter键左边
到全局书签A处,Tab键上方
到全局书签A所在行行首处,Enter键左边
如果n=0,缓冲区将打开上一次的文档,且光标在上次编辑最后的位置,1-9以此类推
如果n=0,缓冲区将打开上一次的文档,且光标在上次编辑最后的位置所在行的行首,1-9以此类推查看书签列表
marks 查看当前所有书签

七、关于加密

(一)加密文本文件

当用vim打开或新建一个文件时,如果加上-x参数,即:

vim -x filename

那么vim会提示:

Enter entryption key:

当输入了密码后,vim会提示重复输入以确认:

Enter same key again:

在设置密码的时候,是以*来显示的,非明文。当下次有人(包括自己)打开该文件的时候,vim就会提示:

Need encryption key for "main.cpp"
Enter encryption key:

这时只要输入之前所设置的密码就可以了。如果输入的密码是错误的,vim并不会提示密码错误,而是显示一堆无意义的垃圾代码。

(二)解除加密与重设密码

打开已经加密的文件,然后输入:

:set key=

这样密码就被设置为空了,今后进入就不再需要输入密码了。而如果向重设密码的话,可以输入:

:X

注意是个大写字母X。这时vim会提示,只要反复输入两次新的密码就可以了:

Enter entryption key: *****

Enter sanme key again: *****

(三)加密引起的问题

vim的加密功能,可以说是问题一大堆。比如:

1)如果密码输入错误,vim不会拒绝访问者编辑文件。在这种显示乱码的情况下编辑文件并保存,整个文件就会变得混乱不堪,无法辨识。今后即使使用正确的密码打开文件,也看不到正确的文档了。

2)如果对一个需要编译的源代码文件进行了加密,则无法通过编译器的语法检查。

3)交换文件是无法加密的。这样引起什么问题?问题就是如果其他用户想办法读取到了交换文件,就可以绕过解密环节,加密也就无意义了。解决的办法就是,不使用交换文件。方法有三个

是修改vimrc文件(vim配置文件):

set noswapfile

是在用vim打开文件之初就输入命令:

vim -x -n filename

(注意-x是加密参数,与我们所说的swap没有关系,不要搞混)

是在进入vim编辑该文件后,输入:

:setlocal noswapfile

不过不使用交换文件的坏处就是,可能会面临数据丢失而无法找回的悲剧。所以又想用加密,又想不丢失文件,就勤按:w

 

以上就是这一期的全部内容。

更多技术分享,可以持续关注乐维社区forum.lwops.cn

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。