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博客

相关推荐
jsons124 分钟前
linux逻辑卷
linux·运维·服务器
水水阿水水28 分钟前
第二章:C语言基础(三)
linux·c语言·开发语言·算法
Kalika0-028 分钟前
Linux 系统启动
linux·运维·服务器·学习
爱吃涮毛肚的肥肥(暂时吃不了版)33 分钟前
Linux高阶——1103—修改屏蔽字&&信号到达及处理流程&&时序竞态问题
linux·运维·服务器·开发语言·c++·后端
我非夏日1 小时前
Linux-第四章
linux·运维·服务器
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(6)platform平台总线
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件
Karoku0662 小时前
【缓存与加速技术实践】Redis哨兵
linux·运维·服务器·数据库·redis·mysql·缓存
jxq19942 小时前
Crash日志查找与分析
linux·运维·网络
Dangks2 小时前
[运维] 服务器本地网络可用性检查脚本
linux·运维·服务器·shell·network·系统工具
小兔子酱#2 小时前
【Linux 26】应用层协议 - HTTP
linux·运维·服务器·网络·网络协议·http