Linux:vim的简单使用

个人主页 : 个人主页

个人专栏 : 《数据结构》 《C语言》《C++》《Linux》

文章目录


前言

本文是对Linux中vim使用的总结


一、vim的基本概念

vim是一款多模式的文本编辑器,vim里有许多子命令,来进行代码编写的操作。本文将总结vim的三种常用模式,分别是命令模式(command mode),插入模式(insert mode),底行模式(last line mode),其中默认打开命令模式

  • 命令模式
    控制屏幕光标的移动,字符,字或行的删除,移动复制某区段及进入插入模式,或者到底行模式

    输入 vim 文件名 指令后进入的界面就是命令模式
  • 插入模式
    只有在插入模式下,才可以做文字输入,按[ESC]键可以回到命令模式。

    在命令模式下输入:i,a,o都可以进入命令模式
  • 底行模式
    文件保存或退出,也可以进行文件替换,找字符串(/ 字符串),列出行号(set nu)等操作。在命令模式下,shift + ; 进入底行模式。在底行模式下,可以查看vim的所有模式( help vim-modes)


    按h,j,k,l进行左,下,上,右移动光标。输入shift ; q退出

二、vim的基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后,就可以进入vim全屏膜编辑模式

    要注意,在命令行模式下,不能输入文字。要在插入模式才能输入文字
  • 命令行模式 到 插入模式
    输入 i,a,o都可以

    但输入i,光标不移动。输入a,光标向右移动一字符。输入o,光标向下移动一行。

    现在我们处于命令行模式,光标位于第三个a处。
    输入 i :

    输入:o

    输入:a

  • 插入模式 切换至 命令行模式
    目前处于插入模式,就只能一直输入文字,如果发现输入错误,想用光标往回移动,将该字符删除,可以先输入 ESC转到命令行模式在删除文字。当然也可以直接删除

  • 命令行模式 转到 底行模式
    输入shift ;

三、vim正常模式命令集

  • 插入模式

输入 i 切换进入插入模式,按 " i "进入插入模式后从光标当前位置开始输入文件

输入 a 进入插入模式,从目前光标所在位置的下一个位置开始插入文字

输入 o 进入插入模式,插入新的一行,从行首开始输入文字


  • 移动光标

vim可以直接用键盘上的光标来上下移动,但正规的vim是用小写字母 h,j,k,l分别控制光标左,下,上,右移动一格

输入 shifr g(G):移动到文件的最后

输入 $:移动到光标所在行的行尾

输入 ^:移动光标到所在行的行首。 ^ 和 $ 表示一行的开始与结尾,被称为锚点符号

输入 w:光标调到下一个字的开头

输入 e:光标调到下一个字的字尾

输入 b:光标回到上个字的开头

输入 #|:光标移到该行的第#个位置

输入 gg:进入文本开始

输入 shift + g :进入文本末端

输入 ctrl + b :屏幕向后移动一页

输入 ctrl + f:屏幕向前移动一页

输入 ctrl + u:屏幕向后移动半页

输入 ctrl + d:屏幕向前移动半页


  • 删除文字

x:每按一次,删除光标所在位置的一个字符

#x:表示删除光标所在位置的后面(包含自己在内)#个字符

X(大写):每按一次,删除光标所在位置前一个字符

dd:删除光标所在行

#dd:从光标所在行开始删除#行


  • 复制

yy:复制光标所在行到缓冲区

#yy:复制包含光标所在行后#行到缓冲区

p:将缓冲区的字符贴到光标所在的位置。注意:所有与y有关的复制命令都必须与p配合才能完成复制与粘贴功能。

注意dd可以与p配合使用,当只使用dd,就是删除。但是在dd后再使用p就是剪切。


  • 替换

r :替换光标所在处的字符

R:替换光标所到之处的字符,直到按ESC为止 (也就是 shift + r 进入替换模式)

shift ~:智能大小写转换


  • 撤销上一次操作

u :如果你误操作一个命令,可以按u,回到上一个操作。按多次u可以执行多次回复

ctrl + r:对撤销的回复


  • 更该

cw:更改光标所在处的字到字尾处

c#w:更改光标所在的字(包含光标所在的字)后#个字


  • 跳至指定的行
  • ctrl + g:列出光标所在的行号
  • #G:光标移动至文件的第#行行首

  • 批量化注释

ctrl + v -> j / k两个按键上下选中区域 -> shift + i -> // -> ESC

四、vim底行模式命令集

  • 列出行号

set nu:输入set nu后,会在文件中的每一行前面列出行号

set nonu:取消行号


  • 跳到文件中的某一行

#:#表示一个数字,在冒号后输入一个数字,在按回车键就会跳到该行


  • 查找字符

/关键字:先按/,再输入你想寻找的字符,如果第一次的关键字不是你想要的,可以一直按 n 会往后寻找到你要的关键词

?关键字:先按?,再输入你想寻找的关键字,如果第一次的关键字不是你想要的,可以一直按 n 会往后寻找到你要的关键字


  • 保存文件
    w:在冒号后输入字母w,就可以保存文件

  • 退出vim

q:按q就是退出,如果无法离开vim,可以输入 q!强制退出vim

wq:一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件

五、.xxx.swp的解决

在打开文件时,如果直接退出shell,会产生一个隐藏备份文件.xxx(文件名).swp。此时我们在打开xxx文件就无法打开,这时我们可以直接rm掉.xxx.swp文件

如下:我们vim test.txt文件再输入一些内容,之后直接退出shell就会查收.test.txt.swp文件

此时我们不能vim test.txt打开文件,会有如下提示

我们只有rm .test.txt.swp文件后才可以正常打开文件

六、在信任列表添加信任用户

在配置vim时,我们普通用户有可能需要执行sudo命令,但如果该普通用户不在信任列表中,sudo命令就不能执行。

此时,我们就要用root账号,执行vim /etc/sudoers 指令,进入如下页面

找到下图所示处。

切换到插入模式,复制第100行的内容,在102行粘贴,并将用户名改为要添加信任列表的用户的用户名。

切换成命令模式,在强制保存并退出(wq!)。这样该用户就添加入信任列表

此时我们在执行刚刚的指令就可以了。

要注意,是输入该用户的密码


总结

以上就是我对于Linux中vim使用的总结。感谢支持!!!

相关推荐
小林熬夜学编程16 分钟前
【MySQL】第九弹---掌握SQL关键操作:更新、删除、插入与聚合分析的秘诀
linux·开发语言·数据库·mysql
_extraordinary_6 小时前
Linux基本指令(三)+ 权限
linux·运维·服务器
WalkingWithTheWind~6 小时前
Linux搭建Nginx直播流媒体服务RTMP/RTSP转Http-flv视频浏览器在线播放/Vue/Java/ffmpeg
java·linux·nginx·ffmpeg·vue·http-flv·rtsp
和舒貌8 小时前
Linux系统编程基础详解
linux·运维·服务器·基础
Jack魏9 小时前
Linux MySQL 8.0.29 忽略表名大小写配置
linux·mysql·mysql8·mysql常见问题
ctrigger9 小时前
AI回答:Linux C/C++编程学习路线
linux·c语言·c++
蛊明11 小时前
下载CentOS 10
linux·运维·centos
北京-宏哥11 小时前
Linux系统安装MySQL5.7(其他版本类似)避坑指南
linux·运维·服务器
Aphelios38011 小时前
Linux 下 VIM 编辑器学习记录:从基础到进阶(下)
java·linux·学习·编辑器·vim
qw94911 小时前
Linux 高级篇 日志管理、定制自己的Linux系统、备份与恢复
linux·运维·服务器