Linux编辑器——vim的使用

目录

vim的基本概念

命令模式

底行模式

插入模式

注释和取消注释

普通用户进行sudo提权

vim配置问题


vim的基本概念

一般使用的vim有三种模式:

命令模式 底行模式和插入模式,可以进行转换;

vim filename

打开vim,进入的是命令模式;输入a/i/o 可以切换到插入模式

输入Esc可以退回到命令模式

输入 shift+;=: 切换到底行模式,输入Esc回退到命令模式

注意,底行模式不能直接切换到插入模式

命令模式

:控制光标的移动,字符的输入,删除,复制粘贴等等,有一些相关的指令;

n+yy :复制当前行 n:连续复制n行

n+p:粘贴,n:把当前内容粘贴n行

n+dd:剪切,n:剪切n行

u:撤销 ctrl+r:反撤销

shift+4=$:将光标定位到当前行的结尾

shift+6=^:将光标定位到当前行的开头

gg:将光标定位到整个文本的开头

shift+g=G:将光标定位到整个文本的最后一行

n+shift+g=nG:将光标定位到整个文本的任意一行,

h(左) j(下) k(上) l(右) 控制光标的移动

w:按照单词为单位进行光标后移

b:按照单词为单位进行光标前移

shift+`=~:大小写快速切换,可以将已经编辑过的大写字母变成小写字母,小写字母变大写字母

按住shift+` 就可以把小写字母变成大写字母

n+x :可以删除光标后面的一个字符,n:一次可以删除n个,在一行以内

n+shift+x:可以删除光标之前的一个字符,n:一次可以删除n个,在一行以内

n+r:可以替换光标位置的字符,

r+要替换的字符, 例如 ra

n:表示一次可以替换n个在光标之后的字符(包括光标所在的字符),例如 4ra

shift+r=R:进入替换模式,进行文本替换

例如 shift+r xxxxxx(要替换的文本)

shift+zz=ZZ:保存并退出

底行模式

:用来进行vim和shll进行交互

w:保存

q:退出

wq:保存并退出

!:强制

set nu:打开行号

set nonu:关闭行号

/ 关键字:可以搜索文本中出现的字符,并把光标定位到该位置

!指令:不退出vim,就可以进行shell命令的执行,常用于函数查看

vs filename:分屏,用于多文件操作

插入模式

:就是编辑,写文本;

注释和取消注释

ctrl+v 进入视图模式,用 hjkl控制框选区域 shift+i 进入编辑模式 输入// 就可以注释了

然后Esc退出,要退出两次,

ctrl +v 进入视图模式,用hjkl控制框选区域,包含且仅包含//,输入d就可以取消注释

普通用户进行sudo提权

1.普通用户先切换成root用户

2.vim /ect/sudoers

3.输入set nu设置行号

4.在一百行左右,进行普通用户的sudo提权,只改变用户名,其他的和root一样

然后就提权成功了

vim配置问题

原理:vim并不是直接执行,执行前会读取一些文件,比如.vimrc 我们把需要配置的指令写在.vimrc文件中,然后vim执行时就会读取.vimrc文件,配置一些功能,比如行号,自动缩进,自动补齐,代码提示等等;

为了方便,还可以一键式配置

在当前用户目录下输入

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

然后需要输入root账号密码,就配置成功了

具体内容可以参考这些文件:

VimForCpp: 快速将vim打造成c++ IDE

相关推荐
CoolTiger、1 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
学习3人组2 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
厨 神3 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0663 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen013 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
(⊙o⊙)~哦4 小时前
linux 解压缩
linux·运维·服务器
牧小七5 小时前
Linux命令---查看端口是否被占用
linux
鸡鸭扣6 小时前
虚拟机:3、(待更)WSL2安装Ubuntu系统+实现GPU直通
linux·运维·ubuntu
友友马6 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
记得开心一点嘛7 小时前
在Linux系统上使用Docker部署javaweb项目
linux·运维·docker