• Linux-vim使用


    目录

    基本vim的基本操作:

    命令模式:

    光标定位:

    $:光标定位到行右:

     ^:光标定位到左:

    shift+g=G:光标定位到底部

     gg:回到顶部

     n+shift+g表示跳转光标到第n行

    文本复制相关

    yy复制 p粘贴。(支持多行复制粘贴)

    u:撤销操作:

    dd删除光标所在行(ndd)

     ndd+p:剪切操作

     光标移动:

    h:向左移动:

    j:向下移动:

    k:向上移动

    l向右移动:

    文本编辑:

    shift+~表示大小写切换:

     替换模式:

    nr表示替换n个字符:

     行内删除:x:支持nx

      行内删除:Nx和X(shift+x)

     W:向后按照单词移动

    b:向前按照单词移动:

    cw能够删除一个单词:

     c#w:例如c3w能够删除3个字:

    ctrl+r:取消撤销操作:

     从命令模式到插入模式

    底行模式:

    set nu设置行号

    set nonu:取消设置行号。

     ​编辑

    分屏操作:vs copy.c

     ctrl+ww:光标跨屏

    %s/被替换/替换/g:表示全局替换:

    无法使用sodu的问题:

    删除用户的操作:

    编译:


    基本vim的基本操作:

     我们进行实验:

     创建一个普通文件,使用vim进行编辑:

     如下图所示:这就是命令模式:

    假如我们要进入插入模式,直接按i即可:

     在插入模式下,我们可以随意的进行编辑:

     从插入模式到命令模式直接按ESC即可:

     我们直接到了命令模式。

    要从命令模式到底行模式需要输入":"

     我们进入底行模式。

    底行模式到命令模式只需按ESC即可。

     假设我们要保存写入的内容:我们需要先进入底行模式,然后输入wq!,表示写入并强制退出。

     接下来,我们使用cat来查看文件内容:

     总结:vim +文件名表示进入vim基本操作

    vim基本操作分为3个模式:命令模式,插入模式,底行模式

    命令模式到插入模式需要输入i,从插入模式到命令模式按ESC

    插入模式无法直接变成底行模式,底行模式也无法直接变成插入模式。

    命令模式到底行模式的操作是按":"符号,底行模式到命令模式的操作是按ESC

    命令模式:

    光标定位:

    $:光标定位到行右:

     按下$符号:

     ^:光标定位到左:

    我们的光标刚开始在第一行的最右侧,然后我们按^符号。

     

     这时候,光标移动到最开头了。

    shift+g=G:光标定位到底部

     我们的光标起初在头部,我们按下shift+g。

    光标移动到了尾部。

     gg:回到顶部

     我们的光标在底部,按gg

    我们的光标回到了顶部。

     n+shift+g表示跳转光标到第n行

    我们的光标在顶部,假如我们想要跳转光标到第四行:

      

     我们的光标到达了第四行的头部。

    文本复制相关

    yy复制 p粘贴。(支持多行复制粘贴)

    例如:

    yy复制光标所在的一行指令。

     我们按yy,再按p

     我们就粘贴出了一行指令。

    多行复制和多行粘贴

     假如我们要复制3行代码:

    输入3yy,再按p

    我们就打印出了3行内容。

     假如我们想要多行打印呢?

    我们先按yy打印光标所在的行,然后3p

     我们就额外粘贴出了3行内容。

    u:撤销操作:

    我们使用yy复制光标所在行的内容:

     然后再按p进行打印:

     假如我们要进行撤销的话,按u即可。

    这时候,我们就撤销回了原来的操作。

    dd删除光标所在行(ndd)

    假如我们要删除光标所在的行:

     我们按dd

     假如我们要删除光标所在行及其后六行的话:

    我们输入6dd

     

     ndd+p:剪切操作

    我们按6dd,删除掉所有的代码:

     

    这里的删除其实还有复制的意思,假如我们想要粘贴回来这串代码,我们直接按p即可。

     

     光标移动:

    h:向左移动:

    j:向下移动:

    k:向上移动

    l向右移动:

    文本编辑:

    shift+~表示大小写切换:

    例如:

     我们的光标在如图所示的位置,假如我们要把p替换成为大写的

    直接按shift+~

     这时候,p就变成了大写。

    假如我们要批量化大小写:

     我们要把print这五个字符全部替换成为大写字符:

    我们直接按5+shift+~即可:

     替换模式:

     我们按shift+r。

     这时候变为替换模式:

    我们输入的内容就会对文本进行替换,例如:

    我们直接输入woshizsk

     这里就会直接完成替换。

    nr表示替换n个字符:

    例如:

    我们想把printf这行全部替换成为z,我们可以这样写:

     我们输入20r +z表示我们替换20个字符,这20个字符都为r

     行内删除:x:支持nx

    例如:

    x表示向后删除:

    我们是向后删除,所以应该先删除;

     

    我们输入x就把;删除了

     我们也可以使用nx

     我们输入3x,向后删除,就会删除main的一部分:

      行内删除:Nx和X(shift+x)

     假如我们按shift+x,我们进行的是行内删除,对应的就是t

     我们也可以使用NX,表示向行内删除3个元素:

     W:向后按照单词移动

    例如:

     我们按一次w

    光标就会跳到下一个单词所在位置。

    b:向前按照单词移动:

     光标在如图所示的位置,我们按b

     我们就会跳到前一个单词所在的位置处。

    cw能够删除一个单词:

     我们按下cw,就会把printf这个单词删除掉。

     c#w:例如c3w能够删除3个字:

    我们的光标在如图所示的位置:

    我们按下c3w

     

     我们就删除掉了3个单词。

    ctrl+r:取消撤销操作:

    例如:

    我们按dd删除光标所在的这一行:

     

     我们按下u,可以撤销这个操作:

     假设我们又不想撤销了,我们可以按ctrl+r取消撤销。

     从命令模式到插入模式

    从命令模式到插入模式,我们可以按一下三个字符:

    i/a/o,这三个字符都可以进入插入模式。

    底行模式:

    set nu设置行号

     

    set nonu:取消设置行号。

     

     

     这时候,我们的行号就删除了。

    分屏操作:vs copy.c

     

    我们完成了分屏,并且我们发现,分屏操作的光标只有一个。

     ctrl+ww:光标跨屏

     如图所示,我们的光标就跳到了右边的位置。

    %s/被替换/替换/g:表示全局替换:

    例如:

     假如我们要把这里的printf全部替换成为cout,我们可以这样写:

     

     这时候,我们的printf就被全部替换成为cout了。

    这里的g表示global,表示全局的。

    无法使用sodu的问题:

    切换成超级用户:

    使用vim进行操作:

     

     我们在这里添加一个106_hello,然后用户106_hello就可以使用sodu来进行提权了。

    删除用户的操作:

    userdel -r +用户名 :表示删除用户:

    编译:

    编译分为四部分:预处理,编译,汇编,链接。

    预处理包括:头文件的展开,去注释,条件编译,宏替换

    预处理执行:

    gcc -E test.c -o test.i

    含义:从现在开始进行程序的翻译,预处理做完时,就停下来

    -o:知名形成的临时文件的名称(.i)

    gcc -S test.c -o test.s

    含义:从现在开始,进行程序的翻译,做完翻译工作,变成汇编之后,就停下来。

    gcc -c test.s -o test.o

    然后我们调用可执行程序:

    发现我们没有权限

     gcc test.o -o mytest

    表示进行链接过程,形成了可执行程序,我们可以对可执行程序进行调用:

     

  • 相关阅读:
    洋码头API接口
    什么是物联网?定义和解释
    Kafka消费者api编写教程
    CDGP与CDMP考哪个合适?
    将 ChatGPT 用于数据科学项目的指南
    信息安全等级保护的5个级别分别是什么?最高级别是哪个?
    elementUI加springboot实现上传excel文件给后端并读取excel
    利用map的特性对数组进行操作
    【无标题】
    Layui 表单设计器
  • 原文地址:https://blog.csdn.net/qq_66581313/article/details/127583038