Linux编辑器-vim使用

vim的基本概念

这路讲解vim的三种模式(其实有好多模式,目前简单掌握这3种即可),分别是**命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),**各模式的功能区分如下:

vim的基本操作

  • [正常模式]切换至[插入模式]
    • 输入a
    • 输入i
    • 输入o
  • [插入模式]切换至[正常模式]

目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。

  • [正常模式]切换至[末行模式]
    • 「shift + ;」, 其实就是输入「:」
  • 退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」
    例如:
    • :w (保存当前文件)
    • :wq (输入「wq」,存盘并退出vim)
    • :q! (输入q!,不存盘强制退出vim)

命令模式

光标移动:

  • gg: 快速回归光标,定位第一行第一个位置;
  • Shift + g (也就是G):快速移动光标,定位最好行第一个位置;
  • Shif + 4(也就是$):移动到光标所在行的"行尾"
  • Shif + 6(也就是^):移动到光标所在行的"行首"
  • w:光标跳到下个字的开头
  • e:光标跳到下个字的字尾(若在一个字符内,会跳到这个字符尾)
  • b:光标回到上个字的开头
  • ctrl + b(B):屏幕往"后"移动一页
  • ctrl + f(F ):屏幕往"前"移动一页
  • ctrl + u(U):屏幕往"后"移动半页
  • ctrl + d(D):屏幕往"前"移动半页
  • 一般命令都可以加数字n 表示,运行几个,几遍,几倍这个命令;

例如:

  • n + w 表示跳转第n给字开头的位置
  • n + shif + g 表示光标移动到第几行开头

删除文字:

# 也就是上面数字 n + 指令的用法

  • 「x」:每按一次,删除光标所在位置的一个字符
  • 「#x」:例如,「6x」表示删除光标所在位置的"后面(包含自己在内)"6个字符
  • 「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符
  • 「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符
  • 「dd」:删除光标所在行
  • 「#dd」:从光标所在行开始删除#行

复制:

  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「#yw」:复制#个字到缓冲区
  • 「yy」:复制光标所在行到缓冲区。
  • 「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
  • 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能,x指令删除的字符p也能复制;反言之,不使用p那不就是删除?

如果以上动作,后悔了,怎么撤回?

  • 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可以执行多次回复。
  • 「ctrl + r」: 撤销u的操作

但要注意:一旦退出文件编辑就无法撤回,但如果仅仅是保证w,没有退出q,那还是可以撤回的;

vim末行模式命令集

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式

  • w/q/! 保存,退出(ctrl zz 快捷退出)
  • set nu/nonu (增加,取消行数的显示)
  • !command 能在vim下输出指令,这是十分有用的地方;
  • %s/det/src 批量替换src被替换的字符,det要换的字符
  • vs new_src 同时打开多个文件.c /c++ 编译;
    • ctrl ww切换文件终端,在不太文件终端中使用;
  • :/单词 和shift + 3(#) 的用法一样,高亮(选择对应单词),n可以逆向查找,shif + n可以正向查找

V-BLOCK

命令模式中,ctrl v进入;

作用就是:

批量进行一些操作;例如,增加一些内容,注释,替换一些内容等等

操作解析(例子):

以批量注释为例子;ctrl + v 进入, 移动光标选择要选择的行; shift + i 进入插入模式, 输入// ;esc退出,如此就能完成批量注释的操作;

想干什么 移动光标选择要选择的行后,shift + i 进入插入模式;插入模式对哪一行的操作,其实就是对光标选择要选择的行 的 所有操作

一些其他的技巧

上下移动的不同键位:

为什么hjkl 是 左 下 上 右?

这与计算机发展有关,之前左 下 上 右,就是这些键位,感兴趣的可以自行去查哦;

简单vim配置

  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的**主目录(~家目录)**下,都可以自己建立私有的配置文件,命名为:".vimrc"。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 某个账号的家目录下的.vimrc 配置的vim只对这个账号有作用; 公共的vim配置文件对整个系统的vim都有作用
  • 一般来说更支持在私人账号下配置vim,毕竟每个人的习惯不一样;
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 打开自己目录下的.vimrc文件,执行 vim .vimrc

常用配置选项,用来测试

  • 设置语法高亮: syntax on
  • 显示行号: set nu
  • 设置缩进的空格数为4: set shiftwidth=4

使用插件

要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置

我参考的这上面这位大佬做的vim插件;但要使用也有要求

  1. 不能是root;
  2. 只支持centos7

如果想自己配置vim

可以参考这为大佬的方法哦 ~

手把手教你把Vim改装成一个IDE编程环境(图文)_vim 打造成 ide-CSDN博客

相关推荐
mit6.824几秒前
[Redis#0] iredis: linux上redis超好用的环境配置
linux·redis·后端
陌小呆^O^8 分钟前
Cmakelist.txt之Linux-redis配置
linux·运维·redis
ernesto_ji16 分钟前
Linux中,防火墙基本操作指令
linux·运维·网络
丶Darling.1 小时前
MIT 6.S081 | 操作系统 | Lab1: Xv6 and Unix utilities
linux·服务器·c语言·操作系统·unix·lab·mit 6.s081
Burfitt.Lee1 小时前
Linux:confluence8.5.9的部署(下载+安装+pojie)离线部署全流程 遇到的问题
linux·运维·服务器
vvw&1 小时前
使用 Nginx 在 Ubuntu 22.04 上安装 LibreNMS 开源网络监控系统
linux·运维·服务器·nginx·ubuntu·github·librenms
运维&陈同学1 小时前
【zookeeper02】消息队列与微服务之zookeeper单机部署
linux·服务器·分布式·微服务·zookeeper·云原生·消息队列·云计算
与君共勉121382 小时前
Jenkins-Git Parameter 插件实现指定版本的发布和回滚
linux·服务器·gitlab·jenkins
wusam2 小时前
CentOS8.5.2111(7)完整的Apache综合实验
linux·运维·apache
&黄昏的乐师2 小时前
Opencv+ROS实现摄像头读取处理画面信息
linux·人工智能·opencv·计算机视觉·ros