Linux学习之路 -- 工具篇 vim

发布于:2024-03-29 ⋅ 阅读:(21) ⋅ 点赞:(0)

Vim(Vi Improved)是一款功能强大的文本编辑器,在Linux系统中广泛使用。它是 Vi 文本编辑器的改进版本,我们可以通过vim来正式地编辑一个文件,下面我将介绍vim的相关操作。

vim + 文件名 就可以进入文件

目录

一、vim的主要三个模式

<1> 模式的转换

<2>具体命令

<3>插入模式

<4>其他模式

<5>visual block模式

二、vim 的配置问题


一、vim的主要三个模式

<1> 模式的转换

vim 这个编辑器有许多的模式,但是比较重要的就是命令模式,底行模式,插入模式。                    我们刚进入vim 这个编辑器时,所处的模式就是命令模式,此时我们敲击键盘上的任何字符都会被认为是命令。但是我们需要的是编辑文件,所以我们必需转换到插入模式,具体操作就是按 o 、i、a中任意一个键就可以进入插入模式,进入后我们会看到底下会有标识。

如果我们想退出插入模式,并回到命令模式,我们可以按左上角的 esc 键。那命令模式该如何转换成底行模式呢? 按shift 键 + ;键即可。此时我们就进入了底行模式,如果我们想回退到命令模式,直接按esc 即可。但是插入模式和底行模式是不能相互转换的。

退出vim 时,要先转成底行模式,再按W + Q键,如果vim 异常退出,比如直接关闭linux 系统,或其他一些不规范的操作,会导致下一次编辑文件时无法进入(如下图)

因为vim的异常退出,导致了形成了一个“.lesson7 .swp” 的隐藏文件保存了之前的数据(参见上图的第二行:“Found a swap .....".lesson7.swap"”),这里我们呢只需要在命令行输入shift + R键, 如果没有作用,那也可以尝试shift + D键,删除这个文件,如果还是没用,我们可以直接实现ls -al 命令,然后在当前目录文件下查找该隐藏,直接删除。不过要注意的是,原来文件里的数据可能会丢失一部分,所以我们还是要按正常的操作进行退出。

<2>具体命令

1.插入模式:由于插入模式就相当于编译器写代码一样,区别就是没有鼠标,所以插入模式就不具体介绍了。

2.命令模式

下面介绍命令模式的一些具体的命令

shift + $  将光标定位到当前行的最右侧
shift + ^ 将光标定位到当前行的最左侧
shift + g 将光标定位到最后的一行
gg 将光标定位到最开始的一行
n+ shift + g 将光标定位到第n行
h 向左移光标
l 向右移光标
j 向下移光标
k 向上移光标
n + yy 复制当前行/n行
n + p 在下一行粘贴一次或n次
u 撤销编辑操作(undo)
ctrl + r 对撤销进行撤销
n + dd 删除当前 n 行 / 剪切当前的n行(配合p使用)
shift + ~ 从当前行的开头位置开始按住,表示大小写的快速切换
n + r  替换当前光标的字符
shift + r 替换模式(将原有的内容进行替换)
esc  可以将任何模式回退到命令模式
n + x 从当前光标开始,向后删除n个字符
n+ shift + x 从当前光标开始,向前删除n个字符
w 以一个单词为单位,向后移动
b 以一个单词为单位,向前移动
shift + # , r然后按n 快速查找函数

因为在vim诞生的时候,鼠标并没有广泛使用,所以才会有上下左右的光标移动键,老式键盘里hjkl就是表示上下左右,现在才演化出来方向键。注意撤销在退出vim后,再次登录就没用了。光标的起始位置是在上一次退出时光标的位置,如果要修改进入时光标所在的位置,在文件名后跟 + n(行号)

<3>插入模式

 

w 保存
q 退出
q! 强制退出
wq 保存并退出
wq! 保存并强制退出
!command 跳出vim执行该命令
vs filname 另一个文件,并分屏(如果文件不存在,会自动创建一个新文件)
ctrl + ww

移动光标到另一个终端(屏幕)

set nu  标出行号
set nonu 取消行号


vs + filename 命令会导致分屏操作,这里我们的光标是只有一个的,所以我们关注光标所在位置即可

 

<4>其他模式

我们可以在底行模式中输入help vim-modes命令,查看vim的模式,

总共12种模式,这里就不赘述了,如有需要可自行查看。 


<5>visual block模式

我们可以使用这个模式进行对文件中代码的批量化的注释,我们可以使用ctrl + v 键进入该模式,下面介绍批量化注释的过程。

批量化注释过程
1. ctrl+v
2. hjkl 进行区域选择
3. shift + i
4.

输入//

5. Esc

结果如图所示。

批量化去注释过程
1. ctrl + v
2. hjkl区域选择
3. d 键

经过以上三个步骤就可以去注释。

二、vim 的配置问题

上图的vim 都是经过配置的,vim的很多功能是需要配置的,比如高亮、显示自动退格,换行......

初始的vim界面如下图

下面我将介绍vim的配置问题,

在配置vim之前,我们需要进入自己用户的家目录下,创建一个.vimrc 的隐藏文件(有就不用了),我们在启动vim ,vim 会根据这个文件配置文件配置启动vim。每一个用户都可以个性化配置自己的vim ,(root 有自己的.vimrc 文件)。

我们可以打开.vimrc 文件,然后进行配置,配置命令有很多,大家可以根据自己喜欢进行配置

" 显示行号
set number

" 启用语法高亮
syntax on

" 设置缩进为4个空格
set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab

" 搜索时高亮显示匹配项
set hlsearch

" 搜索时忽略大小写
set ignorecase

" 智能大小写搜索(如果有大写字母则区分大小写)
set smartcase

" 当文件被外部更改时自动加载
set autoread

" 使用鼠标
set mouse=a

" 禁止备份文件
set nobackup
set noswapfile

" 禁止闪烁
set novisualbell

" 命令行高度为2
set cmdheight=2

" 显示括号匹配
set showmatch

" 匹配括号高亮的时间(毫秒)
set matchtime=2

" 历史记录数
set history=1000

" 搜索时实时显示当前匹配的位置
set incsearch

" 文件编码
set encoding=utf-8

" 文件格式
set fileformat=unix

" 自动缩进
set autoindent

" 共享剪贴板
set clipboard=unnamedplus

" 自动切换粘贴模式
set paste

" 允许使用退格键
set backspace=indent,eol,start

" 括号自动完成
inoremap ( ()<Esc>i
inoremap [ []<Esc>i
inoremap { {}<Esc>i
inoremap " ""<Esc>i
inoremap ' ''<Esc>i

" 快速保存退出
nmap <leader>w :wq<CR>

" 全选
map ggVG gg0VG$

" 重新打开上一次关闭的文件
nmap <leader>f :e#<CR>

" 打开.vimrc文件
nmap <leader>v :e ~/.vimrc<CR>

" 显示/隐藏行号
nmap <leader>n :set nu!<CR>

" 切换粘贴模式
nmap <leader>p :set paste!<CR>

下面演示一两个,

通过set nu表示自动设行号,第一个表示语法高亮(其实这个大部分vim都默认有这功能)

上面列举得只是一些配置,如果需要更多得配置,大家可以通过Al 来进行搜索。

如果大家不想配置,下面输入下面得指令(该网址有配置好的vim 文件),注意不要在root 账号下运行该命令。

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh(本命令仅支持centos 7 的linux 系统)

然后按照提示输入root密码,然后我们等待安装完毕,最后手动执行source ~/.bashrc即可,大家也可以在gitee 或 github 上寻找文件。

配置好后,vim 的界面是这样的。

以上就是vim 的全部内容,希望对你有些许帮助,感谢各位读者的阅读,文中如有不对之处,还望各位大佬指正,谢谢!!!!

本文含有隐藏内容,请 开通VIP 后查看