当前位置: 首页 > article >正文

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的问题

因为,普通用户在sudo的时候只需要输入自己的密码,如果随意的一个用户都可以sudo,那么Linux的权限设置毫无意义,所以Linux添加了一个白名单,只有加入了白名单的普通用户才能进行sudo。 

1.切换到root用户,打开 /etc/sudoers 文件

 

2.大概在100行的位置,把自己的用户名以100行的格式,加在102行就行了

 


http://www.kler.cn/news/312323.html

相关文章:

  • 4×4矩阵键盘详解(STM32)
  • 什么是 WebApiEngine?
  • C#中单例模式CSingleton
  • 前端如何快速调试线上问题
  • react的组件的概念和使用
  • 家庭聚餐:用白酒传递亲情与温暖
  • 滚雪球学SpringCloud[4.2讲]: Zuul:Netflix API Gateway详解
  • 浅谈vue2.0与vue3.0的区别(整理十六点)
  • npm run build报Cannot find module错误的解决方法
  • 誉龙视音频 Third/TimeSyn 远程命令执行复现
  • weblogic CVE-2020-14882 靶场攻略
  • 【百日算法计划】:每日一题,见证成长(018)
  • pytorch使用技巧
  • Designify——AI优化图像设计,自动去背景、调整构图、添加视觉效果,创建高质量的设计图像
  • 2024 Oracle CloudWorld的信息量实在太大了
  • Pikachu靶场之XSS
  • Leetcode面试经典150题-97.交错字符串
  • 记一次kafka消息丢失问题排查
  • [SDX35+WCN6856]SDX35 + WCN6856 WiFi可以up起来之后无法扫描到SSID
  • 7.sklearn-逻辑回归、精确率和召回率、ROC曲线和AUC指标
  • Java项目: 基于SpringBoot+mybatis+maven旅游管理系统(含源码+数据库+毕业论文)
  • nvm node管理工具常用指令
  • 编程基础:函数栈帧的创建和销毁
  • (十六)Ubuntu 20.04 下搭建PX4+MATLAB 仿真环境(HITL)
  • 无人机之AI跟踪篇
  • Facebook直播限流是什么原因?是ip地址导致的吗
  • Java商城的技术优势有哪些
  • Spring 出现 No qualifying bean of type ‘com.xxx‘ available 解决方法
  • 35.贪心算法2
  • [ffmpeg] 视频格式转换