【Linux】Linux环境基础开发工具使用(二)vim【 Linux编辑器-vim使用与介绍 详细讲解 、vim各模式的命令合集 、sudo提权问题的讲解 以及如何提权 】

一、Linux开发工具

  • IDE 集成开发环境
    整个开发的生命周期,建立项目,写代码,编写代码,编译代码,发布项目,C/C++,Java,前端

编写编译运行于一体,称 集成开发环境 ( IDE )


  • 而在Linux中,每个工具都是独立的 。
    • 编写代码 :vim
    • 编译代码 :gcc/g++
    • 调试代码 :jdb
    • 维护代码 :自动化编译 make/makefile

在这里插入图片描述

二、Linux编辑器-vim使用

(一)vim 简单介绍

vi/vim的区别简单点来说,它们都是多模式 编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。我们课堂上,统一按照vim来进行讲解。
在这里插入图片描述
在这里插入图片描述

vim的基本概念

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

  • 正常/普通/命令模式(Normal mode)vim打开的时候 的 默认模式
    控制屏幕光标的移动字符、字或行的删除移动复制某区段进入插入模式(Insert mode)下或者到 底行模式 (last line mode)

  • 插入模式(Insert mode)
    输入i ,insert 。只有在Insert mode下,才可以做 文字输入 【 插入模式下,全都会被解释成文本输入 。所以无法直接从 插入模式 直接进入到 底行模式 】「ESC」键 可回到命令行模式 。该模式是我们后面用的最频繁的编辑模式。

  • 末行模式(last line mode)
    文件保存或退出,也可以进行文件替换找字符串列出行号等操作。

    在命令模式下,shift+: 即可进入该模式。


  • 查看你的所有模式打开vim,底行模式 直接输入
help vim-modes

我这里一共有12种模式 : six BASIC modessix ADDITIONAL modes



(二)vim的基本操作

  • 进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
    • $ vim test.c
    • 不过有一点要特别注意,就是你进入vim之后,是处于[ 正常/命令模式 ]【默认模式】,你要切换到 [插入模式] 才能够输入文字。

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

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

  • [正常模式] 切换至 [末行模式]【底行模式,跳到最后一行】
    • 「 shift + ; 」 , 其实就是输入 「:」(对应键盘)

  • 退出vim及保存文件,在[正常模式]下,按一下 「:」冒号键进入「Last line mode」,例如:
    • : w [ write 写 ](保存当前文件)
    • : wq [ quit 退出 ] (输入「wq」,存盘并退出vim)
    • : q! (输入q!,不存盘 强制退出vim)


[ 三 ] vim 正常模式命令集

[1] vim 插入模式 INSERT MODE

  • 「i」切换进入 插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;

  • 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

  • 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

(1)从插入模式切换为命令模式

  • 按「ESC」键。

(2)移动光标

在vim是在鼠标发明之前发明的,vim是通过键盘控制的,更多的是面向终端


1. 「h」「j」「k」「l」,分别控制光标 左、下、上、右移一格

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

【 shift + 按键对应的位置 => 即是下方出现的按键 】

  • [gg]:进入到文本最开始
  • [shift+g]:进入文本末端
  • 「G」:移动到 文章的最后
  • [ n + shift+g]:直接定位到第n行

2. 锚点

  • 「 $ 」:移动到光标所在行的“行尾”
  • 「^」:移动到光标所在行的“行首”

3. 快速移动 【按 “单词” 移动】

  • 「w」:光标跳到下个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 「b」:光标回到上个字的开头
  • 按「#l」:光标移到该行的 第 # 个位置,如:5l,56l

  • 按「ctrl」+「b」:屏幕往“后”移动一页
  • 按「ctrl」+「f」:屏幕往“前”移动一页
  • 按「ctrl」+「u」:屏幕往“后”移动半页
  • 按「ctrl」+「d」:屏幕往“前”移动半页

4. 光标在窗口之间来回移动

ctrl + w + w:光标多终端切换【tips:光标在哪个窗口,底行编辑就在哪个窗口】

进入文件时,光标的起始位置 就取决于上一次退出时,你的光标在哪里
在这里插入图片描述

vim 文件名 + n ( 需要定位到数目为n的行数 ): 直接定位到该行


(3) 删除文字


(1)删除单个字符

  1. 往后删
  • 「x」每按一次,删除光标所在位置的一个字符
  • 「n + x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”n个字符
  1. 往前删
  • 「X」:大写的X( shift + x ),每按一次,删除光标所在位置的 “前面” 一个字符
    【 向左侧进行局部删除 】
  • 「n + X」:例如,「20X」表示 删除光标所在位置的 “前面” n个字符

(2)删除行

  • 「dd」删除光标所在行
  • 「dd + p」剪切粘贴
  • 「n + dd」从光标所在行开始删除n行

(4) 复制

  • 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
  • 「#yw」:复制#个字到缓冲区
  • 「yy」复制 光标所在行 到缓冲区
  • 「n + yy」复制从该行开始的行 。例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
  • 「p」将缓冲区内的字符 贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
  • 「n + p」:粘贴n次

(5) 替换

  • 「r」替换光标所在处的字符
  • 「n + r」连续地将从光标开始的n个字符进行替换
  • 「shift + ‘r’ = R」【替换模式】替换光标所到之处的字符直到按下「ESC」键为止

(6)撤销上一次操作

【 退出后再重新打开,则无法再撤销了 】

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

(7)更改

  • 「cw」:更改光标所在处的字到字尾处
  • 「c#w」:例如,「c3w」表示更改3个字跳至指定的行
  • 「ctrl」+「g」列出光标所在行的行号。
  • 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。


[ 四 ] vim 末行模式命令集

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

1. 列出行号

  • 「set nu」:输入「set nu(number)」后,会在文件中的 每一行前面列出行号
  • 「set nonu」取消行号

2. 跳到文件中的某一行

  • 「n」:「n」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

3. 搜索 查找字符

  • 「 / + 关键字 」: 先按「/」键,再输入您想寻找的字符 (会出现高亮),如果第一次找的关键字不是您想要的,可以一直按


  • shift + 3 = #:高亮要查找的函数名

  • 「n」 下一个查找到的函数名/字符串名,会往后寻找到您要的关键字为止。


  • 「?+ 关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

  • 问题: 查找有和区别?操作实验一下
    先了解一下这两个符号,后面会再细说。


4. 保存文件

  • 「w」【write】: 在冒号输入字母「w」就可以将文件保存起来 ( 可能没有权限,无法进行-w写的权限,若要写,则需加上「!」 强制进行-w写入)

5. 离开vim

  • 「q」:按「q」就是退出如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
  • 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件
  • shift + zz = ZZ保存并退出vim(但不太建议这么用)

讨论一下 “异常退出” 的问题

异常退出,系统会将该未经过保存的文件,保存在了一个 .开头的 与源文件同名的 .swp 隐藏文件当中 。
在这里插入图片描述

要恢复文件原样:

  • 方法一:

    1. R [Recover] 恢复之前的文件,
    2. D [Delete] 删除因异常退出将该文件临时保存的 .swp 隐藏文件。 shift + d = D
  • 方法二:
    直接rm掉 因异常退出将该文件临时保存的 .swp 隐藏文件
    在这里插入图片描述

但直接rm 可能会丢失这段代码。还是用正规的比较好 ,先R recover 恢复文件 再删除 避免代码丢失的情况



6. 在不退出vim,不退出底行的模式下,即可进行代码的编写、编译、查找 ! + command


7. 对比两个文件

vs 文件名 + 直接退出q!,不会产生新文件
vs 文件名 + wq => 产生新文件

vs filename,光标在哪一个界面,我们就正在编辑哪一个界面



[ 五 ] 视图模式 VISUAL BLOCK

还有 视图模式 :可以进行代码的批量化注释(其他地方都用的不多

1. 批量化注释

  1. ctrl + v:进入VISUAL BLOCK模式(视图模式)
  2. h j k l 进行区域选择,通常用的是 j(下移)
  3. shift + i = I 切换到 INSERT模式
  4. 输入 //
  5. ESC 则会自动在刚刚 所选的区域 完成批量化注释

2. 批量化去注释

  1. ctrl + v:进入VISUAL BLOCK模式(视图模式)
  2. h j k l 进行区域选择,通常用的是 j(下移)
  3. d删除


(三)vim操作总结

  • 三种模式
  1. 正常模式
  2. 插入模式
  3. 底行模式

我们一共有12种总模式,大家下来可以研究一下
还有 视图模式 :可以进行代码的批量化注释

  • vim操作
    打开关闭查看查询插入删除替换撤销复制等等操作。

  • 练习:当堂口头模式切换练习



(四) 简单vim配置

(1)配置文件的位置

  • 目录 /etc/ 下面

    有个名为 vimrc 的文件,这是系统中公共的vim配置文件,对所有用户都有效。

  • 在每个用户的主目录下,都可以自己建立私有的配置文件命名为:“.vimrc”

    /root目录下,通常已经存在一个.vimrc文件如果不存在,则创建之。该文件默认是空的。

切换用户成为自己 执行 su进入自己的 主工作目录 ,执行 cd ~

打开自己目录下的.vimrc文件执行 vim .vimrc
不想要就 "注释掉


打开 .vimrc

vim ~/.vimrc


(2)常用配置选项,用来测试

设置语法高亮syntax on

显示行号set nu

设置缩进的空格数为4:set shiftwidth=4



(3)使用插件

要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来:

安装TagList插件,下载taglist_xx.zip ,解压完成,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到~/.vim/plugin

在~/.vimrc 中添加: let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let Tlist_Use_Right_Window=1

安装文件浏览器和窗口管理器插件: WinManager

下载winmanager.zip,2.X版本以上的

解压winmanager.zip,将解压出来的doc的内容放到~/.vim/doc, 将解压出来的plugin下的内容拷贝到 ~/.vim/plugin

在~/.vimrc 中添加 let g:winManagerWindowLayout=‘FileExplorer|TagList nmap wm :WMToggle<cr>

然后重启vim,打开~/XXX.c或~/XXX.cpp, 在normal状态下输入"wm", 你将看到上图的效果。


参考资料

Vim 从入门到精通(vim from zero to hero)



三、vim 总结

(一)快速的介绍一下vim

vim是一个款多模式的编辑器,vim里面还有很多的子命令,来进行代码的编写操作


(二)vim 的模式

模式间的切换

在这里插入图片描述

(三)谈论常见模式 及其经常使用的命令

  1. 命令模式
    在这里插入图片描述
  2. 底行模式
    在这里插入图片描述
  3. 注释
    在这里插入图片描述

(四)配置问题



四、sudo提权:

  1. 前提是你在用户白名单
    在这里插入图片描述
  2. sudoers白名单的文件 你也 无权进行修改(除root用户)
    在这里插入图片描述

sudoers白名单 添加权限

不是root,没有权限
在这里插入图片描述
(一次sudo完后(需要输入密码进行认证),而后10到15分钟以内不再需要进行认证了)

猜你喜欢

转载自blog.csdn.net/NiNi_suanfa/article/details/134560162