Linux--基础开发工具篇(2)(vim)(配置白名单sudo)

目录

前言

[1. vim](#1. vim)

1.1vim的基本概念

1.2vim的基本操作

1.3vim命令模式命令集

1.4vim底行命令

[1.5 异常问题](#1.5 异常问题)

[1.6 批量注释和批量去注释](#1.6 批量注释和批量去注释)

1.7解决普通用户无法sudo的问题

1.8简单vim配置


前言

在前面我们学习了yum,也就是Linux系统的应用商店

Linux--基础开发工具篇(1)(yum)-CSDN博客

今天我们开始学习Linux的第二个开发工具vim。


1. vim

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


1.1vim的基本概念

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

  • 正常/普通/命令模式(Normal mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode

  • 插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。

  • 末行模式(last line mode)

文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入

bash 复制代码
:help vim-modes

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


1.2vim的基本操作

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:

cpp 复制代码
 vim test.c

不过有一点要特别注意,就是你进入vim之后,是处于命令模式,你要切换到插入模式才能够输入文字。

若本身没有这个文件,vim会帮你创建这个文件,不过我们一般建议先创建好文件在使用vim打开。

此时我们就使用vim打开了test.c文件。

我们刚开始打开的时候发现vim是无法正常输入的,这是因为我们刚进入vim的时候默认处在命令模式,若想正常的输入东西,那么我们就要就如插入模式。

命令模式切换至插入模式

此时输入**(a/i/o)**任意一个字符就可以从命令模式进入到插入模式下了。

插入模式切换至命令模式

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

现在我写完了东西想要退出保存要怎么办呢?首先就要退回到命令模式,然后从命令模式进入到末行模式。

命令模式切换至末行模式

「shift + ;」, 其实就是输入「:」
退出vim及保存文件,在正常模式下,按一下「:」冒号键进入「Last line mode」,例如:

w (保存当前文件)

wq (输入「wq」,存盘并退出vim)

q! (输入q!,不存盘强制退出vim)
现在我们写一个c语言程序,打印出"hello vim!":

1.创建test.c 2.输入(a/i/o)进入插入模式 3 回退到正常模式进入末行模式保存退出文件

我们查看test.c发现保存成功了

编译运行:

问题:我们在使用vim的时候,进入文件 代码总是会有提示

如果不在想出现这个提示,直接将".test.c.swp"文件删除就行了。

bash 复制代码
rm -rf test.c.swp

1.3vim命令模式命令集

在这个模式下,编译器允许使用者通过命令,来进行文本的编辑控制

1.移动光标

  • vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格
  • 按「G」:移动到文章的最后
  • 按「 $ 」:移动到光标所在行的"行尾"
  • 按「^」:移动到光标所在行的"行首"
  • 按「w」:光标跳到下个字的开头
  • 按「e」:光标跳到下个字的字尾
  • 按「b」:光标回到上个字的开头
  • 按「#l」:光标移到该行的第#个位置,如:5l,56l
  • 按[gg]:进入到文本开始
  • 按[shift+g]:进入文本末端
  • 按「ctrl」+「b」:屏幕往"后"移动一页
  • 按「ctrl」+「f」:屏幕往"前"移动一页
  • 按「ctrl」+「u」:屏幕往"后"移动半页
  • 按「ctrl」+「d」:屏幕往"前"移动半页

2.删除文字

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

3.复制

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

4.替换

  • 「r」:替换光标所在处的字符。
  • 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

5.撤销上一次操作

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

6.更改

  • 「cw」:更改光标所在处的字到字尾处
  • 「c#w」:例如,「c3w」表示更改3个字、

7.跳至指定行

  • 「ctrl」+「g」列出光标所在行的行号。
  • 「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

8.快捷退出

  • shift+zz:从命令模式退出vim

1.4vim底行命令

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

「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
2.跳到文件中的某一行

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

「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按

「n」会往后寻找到您要的关键字为止。

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

问题:/ 和 ?查找有和区别?操作实验一下
4.在底行模式中执行shell的命令

!后接命令,表示:不退出vim,可以进行shell命令的执行

eg:不退出vim,直接进行编译生成可执行文件

!:输入!紧接编译器 后接文件名

5.多文件的操作

vs 接文件名,vim会同时创建并打开该文件,进行多文件的操作

如何将光标移动到另一个文件:

ctrl按着不动,w按两次,就可以进行文件的切换。


1.5 异常问题

1.正在使用vim编写文件,此时我没有更改文件的任何内容,此时突然断联,当我们登录Linux使用vim打开会怎么样?

此时用vim打开,不会有任何异常。

2.正在使用vim编写文件,此时我更改文件的内容,此时突然断联,当我们登录Linux使用vim打开会怎么样?

此时再打开该文件就有提示了,因为产生了临时文件(为了保证我们数据的安全),此时我们可以R恢复文件,D删除文件,如果不想有提示,此时将" .test.c.swp"文件删除即可。


1.6 批量注释和批量去注释

批量注释:

我们输入CTRL+v 从命令模式转到可视块模式:

使用上下左右进行和列的选中 number+shift+G选中number行,然后shift+i进入insert,然后按双斜杠//,最后按两次esc回退,这样 所选中的内容就被注释掉了。

批量去注释:

首先进入可视块模式,然后我们选中要去注释的行和列(包含且仅包含//),最后按d就可以成功的去注释了。


1.7解决普通用户无法sudo的问题

授权的普通用户才能使用sudo:

只有将用户配置到这个普通文件中才是被信任的。

那么最关键的问题就是如何在sudoers配置文件中添加自己。

更改这个文件必须是root用户。

下面是配置sudoers文件的操作:

1.先确保自己是root用户,然后用vim打开该文件

2.大概在文件100行的时候你会看到这个,(允许root在任何地方运行任何命令)

3.yy(复制一些100行的格式)然后p粘贴,将名字改成你想添加的用户

  1. esc 重新进入命令模式,wq!保存并退出(注意,一定要加!强制,以表决心)

  2. 回到普通用户,这时普通用户就可以使用sudo了

十分简单!!!

注意:普通用户只能用root添加,即使普通用户sudo了也不行


1.8简单vim配置

vim不是简单直接执行程序就行,也会读取若干配置文件。

配置文件的位置

  • 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
  • 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:".vimrc"。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
  • 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
  • 打开自己目录下的.vimrc文件,执行 vim .vimrc

常用配置选项,用来测试

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

使用插件

要配置好看的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", 你将看到上图的效果。
相关推荐
A小辣椒2 小时前
TShark:基础知识
linux
AlfredZhao4 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao18 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux