当前位置: 首页 > 图灵资讯 > 技术篇> linux操作

linux操作

来源:图灵教育
时间:2023-06-05 09:28:09

vim的工作模式

vim通常有六种工作模式。

  • 普通模式:使用vim打开文件时的默认模式,又称命令模式,允许用户通过各种命令浏览代码、滚动屏幕等操作。
  • 插入模式:也可称为编辑模式,在普通模式下敲击 i 、a 或 o 允许用户通过键盘输入和编辑插入模式。
  • 命令线模式:在普通模式下,先输入冒号:然后输入命令,然后通过配置命令配置vim,如改变颜色主题、显示行号等。这些配置命令也可以保存到/etc/vim在/vimrc配置文件中,每次打开默认配置执行。
  • 可视化模式:在普通模式下敲击前盘 v 键,进入可视化模式,然后移动光标选择文本,常用于复制、粘贴、删除文本等操作。
  • 替换模式:如果我们想修改一个字符,我们不需要进入插入模式,删除它,然后输入一个新的字符。在普通模式下,我们可以直接单击R键进行替换。
  • EX模式:类似于命令线模式,多个命令vim的各种工作模式可以通过不同的键切换,用户可以使用ESC键返回到普通模式。
光标移动命令

移动单个字符:h:  向左移动l:  向右移动j:  向下移动k:  向上移动xh:  向左移动x个字符与单词之间的距离:w:  将光标移动到下一个单词的开头b:  将光标移动到前一个单词的开头e:  将光标移动到下一个单词的末尾E:  移动到单词的结尾(忽略标点符号)ge:  将光标移动到上一个单词的末尾2w:  指定移动次数行动:$:  将光标移动到当前行尾0:  将光标移动到当前行首^:  将光标移动到当前行的第一个非空字符(行首和当前行非空字符不在同一位置)2|:  移动到当前第二列fx:  将光标移动到当前行的第一个字符x上3fx: 将光标移动到第三个字符x上:   fx和tx可以通过将光标移动到目标字符x的前一个字符上;和,重复移动,一个是正重复,另一个是反重复%:  用于符号间的移动,它会在一对()中、[]、{}文本块之间的跳跃移动:(:  移动到当前句子的开头):  移动到下一句话的开头{:  移到当前段落的开头}:  移到下一段的开头[[:  移动到本节的开头]:  移动到下一节的开头,在屏幕上移动xg:  跳转到指定的第x行,G移动到文件的末尾,``(2次单引号)在跳转前返回gg:  移动到文件开头x%:  移动到文件中间,使用50%H:  移动到homem:  L移动到屏幕中间:  移动到一个屏幕末尾的ctrlllll+G:  检查当前的位置状态

滚屏与跳转

半屏滚动:  ctrl+u/ctrl+d全屏滚动:  ctrl+f/ctrl+zzz定位光标位置:  将光标放置在屏幕中间zt:  将光标移动到屏幕顶部的zb:  将光标移动到屏幕底部,设置跳转标记mx,my,mz设置三个位置`x,`y,`z跳转到设置

文本插入操作

i:  将字符a插入当前光标前面:  在当前光标后面添加字符o:  在当前光标的下一行插入字符I:  在一行开头添加文本A:  在一行的结尾添加文本O:  将文本s插入到光标前的最后一行:  删除当前光标处的字符并进入插入模式S:  删除光标所在地的行,并进入插入模式u:  撤销修改

删除文本的操作

字符删除x:  删除当前光标所在地的字符X:  删除当前光标左侧的字符单词dw:  删除一个单词(从光标到空间)daw:  无论光标在哪里,删除光标所在的整个单词(包括空白字符)diw:  删除整个单词文本,但是,保留空格字符不删除d2ww:  从当前光标开始删除两个单词d$:  从光标到一行末尾删除整个文本d0:  从光标到一行开始删除所有单词dl:  删除当前光标处的字符=xdh:  删除当前光标左侧的字符=X行删除dd:  删除当前光标处的整行=D5dd:  从光标开始删除5行代码dggg:  从光标到文本开始删除DG:  删除从光标到文本结尾的J合并:  删除分行符,将当前行与下一行合并

文本复制、剪切和粘贴

y:  复制,p:粘贴yw:  复制一个单词y2w:  复制两个单词y$:  从当前光标到行结尾复制所有单词y0:  从当前光标到行首复制所有单词yy:  复制整行2yyy:  从当前光标所在行开始的两行复制文本块    1.首先进入visual模式:v    2.移动光标选择文本    3.复制粘贴的操作

修改和替换文本

cw:  删除从光标到单词结尾的文本,并进入插入模式cb:  删除从光标到单词开头的文本,并进入插入模式cc:  删除整行并进入插入模式~: 修改光标下字符的大小写r:  替换当前光标下的字符R:  进入替换模式xp:  交换光标和下一个字符

搜索和替换文本

/string   正向查找?string   反向搜索设置亮显示设置    :set hls    *按钮突出显示当前光标处的单词,使用n浏览下一个搜索亮点的结果:s/old/new   用new代替当前行的第一个字符串old:s/old/new/g   用neww取代所有当前的字符串old:90s/old/new/g  将指定行的所有字符串old替换为new:90,93s/old/new/g  用neww代替指定范围内的所有字符串old:%s/old/new/g   用neww代替文本中的所有字符串old:%s/old/new/gc  每个字符串的关键字依次替换:%s/^struct/int/g   用int代替struct开头的所有字符串

撤销修改,重做和保存

u:  撤销上一步的操作。Ctrl+r:  重做原来的插销:U  恢复整行的原貌(文件打开时的文本状态):q  文件未修改的,直接退出:q!  文件已修改,放弃修改退出:wq  文件已修改,保存修改并退出:e!  放弃修改,回到文件打开时的状态

编辑多个文件

磁盘上保存了文件与缓冲区的区别文件,打开的文件在内存中有一个缓冲区,用于存储打开的文件。vim每次打开文件都会创建一个缓冲区,vim支持打开多个文件:buffers   查看缓冲区列表==ls:buffer N  根据缓冲区列表的编号跳转到指定的缓冲区:bnext/bprev  遍历缓冲区列表:bfirst/blast  分别调整缓冲区列表的开头和结尾:write   将缓冲区的修改保存在磁盘上:edit! e! e!  放弃缓冲区的修改,恢复文件打开时的状态:edit file  编辑另一份文件:wnext   保存修改当前缓冲区并跳转到缓冲区列表中的下一份文件:set autowrite

标签页和折叠栏

新建标签页:tabedit file/tab 切换split标签页: tabn/tabp按钮:gt关闭/gt标签页    tabclose 关闭当前标签页: tabonly创建折叠    zf200G:折叠打开和关闭光标和200行之间的代码    za:  打开和关闭折叠    zr/zm: 一层一层打开和关闭折叠    zR/zM: 所有折叠折叠键的光标移动分别打开和关闭    zj: 跳到下一个折叠处    zk: 跳转到上一个折叠处删除折叠    zd: 删除光标下的折叠    zD: 删除光标下的折叠和嵌套折叠    zE: 删除所有折叠标签    退出vim后,创建的折叠将失效。

多窗口操作

分割窗口    split/vsplit filename窗口跳转    ctrl+w hjkl    ctrl+w w移动窗口    ctrl+w HJKL调整窗口尺寸    ctrl+w +/-  调整窗户的高度    ctrl+w </>  调整窗户的宽度    ctrl+w = 所有窗口都设置了相同尺寸的窗口    :resize N将当前窗口尺寸调整为N行关闭窗口    close: 关上窗户    qall: 退出所有窗口    qall!: 放弃修改,退出所有窗口    wqall: 保存并退出所有窗口    wall: 把所有的窗户都保存起来