Linux环境基础开发工具---vim

1.快速的介绍一下vim

vim是一款多模式的编辑器,里面有很多子命令,来实现代码编写操作。

2.vim的模式

vim一共有三种模式:底行模式,命令模式,插入模式。

2.1vim模式之间的切换

2.2 谈论常见的模式---命令模式,底行模式

2.2.1命令模式

光标移动:

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

shift + 4 按「$」:移动到光标所在行的"行尾"

shift + 6 按「^」:移动到光标所在行的"行首"

按[gg]:进入到文本开始

按[shift+g]:进入文本末端

按[数字+shift+g]:跳转到数字指定行

按「w」:光标跳到下个字的开头(按照单词开始移动)

按「b」:光标回到上个字的开头(按照单词开始移动)

复制粘贴

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

「n + yy」:复制多行行到缓冲区。

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

「n + p」:多次粘贴.

撤销

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

「ctrl + r」: 撤销的恢复

「dd」:删除光标所在行/剪切当前行

「n + dd」:删除光标所在行/剪切当前行

局部替换与大小写转换

shift + ·= \~\] : 大小写快速转换 「r」:替换光标所在处的字符。 「n + r」:批量替换光标所在处的字符。 \[shift + r= R\] : 替换模式(ESC退出) **删除文字** 「x」:每按一次,删除光标所在位置的一个字符 「n + x」:每按一次,删除光标所在位置的一个字符 「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符 「n + X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符 **查找** \[ shift + 3 = # \] : 高亮要查找的函数名 ;按「n」会往前寻找到您要的关键字为止。 #### 2.2.2底行模式 **保存文件** 「w」: 在冒号输入字母「w」就可以将文件保存起来 **离开vim** 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。 **查找字符** 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。 \[ ! + command\] : 底行模式可以执行shell命令。 \[ vs + filename \]: 多窗口,光标在那个界面就在编辑那个界面 \[ctrl + w + w\] : 多窗口之间的切换 \[ set + nu\] : 标出行号 \[ set + no + nu\] : 取消标出行号 **批量化注释:** > 1. ctrl + v > > 2. hjkl 进行区域选择 > > 3. shift + i =I > > 4. // > > 5. ESC **批量化去注释:** > 1. ctrl + v > > 2. hjkl 进行区域选择 > > 3. d ## 3. 关于普通用户无法sudo的问题 ![](https://i-blog.csdnimg.cn/direct/80a60d1fa35c4d56b743dc52d6c669c1.png) > 因为,普通用户在sudo的时候只需要输入自己的密码,如果随意的一个用户都可以sudo,那么Linux的权限设置毫无意义,所以Linux添加了一个白名单,只有加入了白名单的普通用户才能进行sudo。 1.切换到root用户,打开 /etc/sudoers 文件 ![](https://i-blog.csdnimg.cn/direct/0f7080cdaf984cda92195a9ea1bb1459.png) 2.大概在100行的位置,把自己的用户名以100行的格式,加在102行就行了 ![](https://i-blog.csdnimg.cn/direct/96f964cecd524c908b6affb64aceb695.png)

相关推荐
辞旧 lekkk5 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
腾讯蓝鲸智云5 小时前
【运维自动化-节点管理】节点管理的插件策略如何使用
运维·自动化·云计算·sass·paas
疯狂成瘾者7 小时前
服务器的单体和集群
运维·服务器
liuhuizuikeai7 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞8 小时前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
charlie11451419110 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
飞Link11 小时前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
消失的旧时光-194311 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
SWAGGY..11 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie12 小时前
U-Boot分析【学习笔记】(3)
linux·笔记·学习