ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vim使用

2022-08-25 15:01:40  阅读:206  来源: 互联网

标签:old vim 光标 当前 使用 字符串 new 输入


  • 把CapsLock映射成。这个操作我建议使用操作系统的改键工具来完成。win下的修改教程链接,mac下直接在系统设置中改即可。不推荐在vim中改是因为系统内修改一次,所有能开启vi-mode的软件都可以使用CapsLock代替esc了,而不需要每次都重新配置。这条是最重要的一条。设置完这条之后几乎马上就可以体会到vim的好处了。
    每当写完一段有小停顿,习惯性按下CapsLock进入normal模式。

  • 适应面向搜索编程的思想。我个人感觉vim快最重要的原因就是精准选择。而实现精准选择的必要途径就是搜索。搜索是vim的核心。
    比如说你需要跳到下个函数,那直接/def。再比如需要跳到括号末,直接f)。终端中,刚输入完python eval.py device cuda data.batch_size 256,发现这行指令中的python要改成python3,可以 直接Fna3。又发现前面要加sudo,直接^isudo。总之一切精确修改都是通过搜索来完成的,这与我们不使用vim编程时搜索只用来查找代码有本质区别。上面它举的几个例子,我怎么都不会输入??

  • 精确跳转+可视化模式 。掌握精确跳转后,结合v V ctrl+v 这三种可视化模式进行精确选择,配合cdyrp等指令,可以完成极其灵活的代码增删改查。到这一步你会发现vim对你编程速度的提高已经是革命性的了。

可以试试用^$移动到行首行末,用w移动到单词结尾,yyp复制粘贴当前行,gg跳到文件开头,G跳到文件结尾,gd跳到定义,/def跳到下个函数开始的地方。用cw修改当前单词,用cf.直接修改到下个.号。

终端中,输入vimtutor zh,可对vim进行练习

Vim快速移动光标至行首和行尾

1、 需要按行快速移动光标时,可以使用键盘上的编辑键Home,快速将光标移动至当前行的行首。除此之外,也可以在命令模式中使用快捷键"^"(即Shift+6)或0(数字0)。

2、 如果要快速移动光标至当前行的行尾,可以使用编辑键End。也可以在命令模式中使用快捷键"$"(Shift+4)。与快捷键"^"和0不同,快捷键"$"前可以加上数字表示移动的行数。例如使用"1$"表示当前行的行尾,"2$"表示当前行的下一行的行尾。

dd删除的行,可以通过p进行粘贴

vimtutor zh中命令的总结

移动光标

光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
         h (左移)       j (下行)       k (上行)     l (右移)

行尾和行首:

欲移动光标到行首,请按数字0或^
欲移动光标到行尾,请按$。与快捷键"^"和0不同,快捷键$前可以加上数字表示移动的行数。
例如使用"1$"表示当前行的行尾,"2$"表示当前行的下一行的行尾。

文档头和文档尾:

CTRL-G 用于显示当前光标所在位置和文件状态信息。
G 用于将光标跳转至文件最后一行。
先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
gg 用于将光标跳转至文件第一行。

括号:

如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。

删除修改、查找替换

删除:

删除类命令的格式是:d   [number(数字)]   motion
       [number] - 可以附加的数字,代表动作重复的次数
       motion代表操作的动作,可以为:
            w - 从当前光标当前位置直到下一个单词起始处,包括单词间的空格。
            e - 从当前光标当前位置直到单词末尾,不包括单词间的空格。
            $ - 从当前光标当前位置直到当前行末。
举例如下:
1. 欲从当前光标删除至下一个单词,请输入:dw
2. 欲从当前光标删除至当前行末尾,请输入:d$
3. 欲删除整行,请输入:dd
4. 欲重复一个动作,请在它前面加上一个数字,如d2w代表删除两个单词,再如2dd或d2d 删除两行代表删除两行


使用d删除掉的内容,可以通过p粘贴出来

修改:

更改类命令的格式是:c   [number]   motion。
c的参数和d一样的,比如 w 代表单词,$代表行末等等。

查找:

输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查
找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。
CTRL-O 带您跳转回较旧的位置,CTRL-I 则带您到较新的位置。【这个不太懂,它是什么样的跳转规则??】

替换:

在一行内替换头一个字符串 old 为新的字符串 new,请输入  :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入  :s/old/new/g
将两行之间的所有的字符串 old 替换为新的字符串 new,请输入  :#,#s/old/new/g,如566,571s/old/new/g
在文件内替换所有的字符串 old 为新的字符串 new,请输入  :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志        :%s/old/new/gc

其他:

在正常模式下删除光标所在位置的字符,请按: x

要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字符即可。

其他简单的操作

欲退出 Vim 编辑器,请输入 <ESC>   :q!   <回车> 放弃所有改动。
                      或者输入 <ESC>   :wq   <回车> 保存改动。

欲插入或添加文本,请输入:
         i  在光标前插入文本
         I  在行首插入文本
         a  在光标后插入文本(最常用)
         A  在行尾插入文本

欲撤消以前的操作,请输入:u (小写的u)
欲撤消在一行中所做的改动,请输入:U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R

标签:old,vim,光标,当前,使用,字符串,new,输入
来源: https://www.cnblogs.com/codingbigdog/p/16624274.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有