首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VIM 常用快捷键

而且写文件、查找翻页什么的 比我用鼠标快多了,那熟练的快捷键看的我一愣一愣的 ---- 光标移动: h或退格: 左移一个字符; l或空格: 右移一个字符; j: 下移一行; k: 上移一行; gj: 移动到一段内的下一行...; gk: 移动到一段内的上一行; +或Enter: 把光标移至下一行第一个非空白字符。...ctrl+e: 向下滚动一行。 ctrl+y: 向上滚动一行。 n%: 到文件n%的位置。 zz: 将当前行移动到屏幕中央。 zt: 将当前行移动到屏幕顶端。 zb: 将当前行移动到屏幕底端。...插入: I: 在当前行第一个非空字符前插入; gI: 在当前行第一列插入; a: 在光标后插入; A: 在当前行最后插入; o: 在下面新建一行插入; O: 在上面新建一行插入; :r filename...在当前位置插入另一个文件的内容。

27.3K23

Vim命令使用说明

; k: 上移一行; gj: 移动到一段内的下一行; gk: 移动到一段内的上一行; +或Enter: 把光标移至下一行第一个非空白字符。...w: 前移一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前移一个单词,光标停在下一个单词末尾; E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点; b:...ctrl+e: 向下滚动一行。 ctrl+y: 向上滚动一行。 n%: 到文件n%的位置。 zz: 将当前行移动到屏幕中央。 zt: 将当前行移动到屏幕顶端。...如果想跳转到更老的位置,可以按C-o,跳转到更新的位置用C-i。 `": 移动到上次离开的地方。 `.: 移动到最后改动的地方。 :marks 显示所有标记。...I: 在当前行第一个非空字符前插入; gI: 在当前行第一列插入; a: 在光标后插入; A: 在当前行最后插入; o: 在下面新建一行插入; O: 在上面新建一行插入; :r filename在当前位置插入另一个文件的内容

2.6K11
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    vim常用命令详解(vim使用教程)

    运行结果如下 所有黑色背景为完全相同的地方,红色背景为完全不同的地方,蓝偏绿色的背景为与另一个文件相比增加的地方,其他的我也不太清楚 -h 显示vim的用法 -m 你可以在打开的窗口中更改,但你将无法对你更改后的文件进行保存...使用/进入的末行模式主要用来查找字符串,在下面进行详细解释 正常模式必要命令详解 h #左移一个字符 l #右移一个字符 j #下移一行 k #上移一行 dd #删除一整行...0 #移动到行首 g0 #移动到当前屏幕的行首 H #把光标移动到屏幕最顶端的一行 M #把光标移动到屏幕中间一行 L #把光标移动到屏幕最底端的一行 gg #移动到文件的头部...的位置 zz #将当前行移动到屏幕中央 zt #将当前行移动到屏幕顶端 zb #将当前行移动到屏幕底端 末行模式常用命令详解 :q #退出当前文件且不保存,q为quit缩写 :q.../gic #将目标字符替换为 替换字符 ,%代表所有行,最后的g代表全局替换,i代表忽视大小写,c代表每个替换都需要用户确认才可以 :1,4 s/目标字符/替换字符/g #将第一行到第四行的

    3.4K30

    Linux-vim

    2. vim常用命令 2.1 一般模式中的命令 2.1.1 光标移动 命令 说明 h,← 光标左移一个字符 j,↓ 光标下移一个字符 k,↑ 光标上移一个字符 l,→ 光标右移一个字符 n[h,j,k,...M 光标移动到屏幕中央一行的第一个字符 L 光标移动到屏幕最后一行的第一个字符 G 光标移动到文件最后一行 nG n为数字,光标移动到文件第n行 gg 光标移动到文件第一行,相当于1G n<Enter...复制光标所在行到第n行 yG 复制光标所在行到最后一行 y0 复制光标所在字符到该行行首 y$ 复制光标所在行到该行行尾 p 将复制的数据粘贴在光标下一行 P 将复制的数据粘贴在光标上一行 J 将光标所在行与下一行的数据合并成一行...强制保存并离开 ZZ 若文件没有改动,则不保存离开,如果文件有改动,则保存后离开 :w[filename] 将文件另存为filename :r[filename] 在光标处插入另一个文件的数据 :n1,...set all 显示所有环境参数设定值 :set 显示所有与系统默认值不同的环境参数设定值 :set nu:set nonu 显示行号取消显示行号 :set hlsearch:set nohlsearch

    6.2K11

    Linux命令之vim三种模式

    ,并且将光标移动到指定行 vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词 vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件 三、命令模式 注意:该模式是打开文件的第一个看到的模式...或V(可视行)或v(可视),然后按下↑↓← →方向键来选中需要复制的区块,按下y键进行复制,最后按下p键粘贴 3、剪切/删除 ①剪切/删除光标所在行 按键:dd (删除之后下一行上移) 注意:dd严格意义上说是剪切命令...②剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行 按键:数字dd (删除之后下一行上移) ③剪切/删除光标所在的当前行之后的内容,但是删除之后下一行不上移 按键:D (删除之后当前行会变成空白行...测试步骤:在两个配置文件中针对同一个配置项设置不同的值 ①先在全局的配置中设置不显示行号,在个人的配置文件中设置显示行号,观察结果 最后显示行号:说明以个人为准 ②先在全局中配置显示行号,在个人中设置不显示行号...,观察结果 最后的显示是不显示行号,说明以个人为准 结论:如果针对同一个配置项,个人配置文件中存在,则以个人配置文件为准,如果个人配置文件中不存在这一项,则以全局配置文件为准。

    3.6K20

    IdeaVim 基本操作

    k 上移一行 +或Enter 把光标移至下一行第一个非空白字符 – 把光标移至上一行第一个非空白字符 w 前移一个单词,光标停在下一个单词开头 e 前移一个单词,光标停在下一个单词末尾 b 后移一个单词...移动到行首 $ 移动到行尾 ^ 移动到本行第一个非空白字符 n| 把光标移到递n列上 nG 到文件第n行 :n 移动到第n行 :$ 移动到最后一行 H 把光标移到屏幕最顶端一行 M 把光标移到屏幕中间一行...n% 到文件n%的位置 zz 将当前行移动到屏幕中央 zt 将当前行移动到屏幕顶端 zb 将当前行移动到屏幕底端 文本的插入 基本插入 快捷键 含义 i 在光标前插入 a 在光标后插入 I 在当前行第一个非空字符前插入...A 在当前行最后插入 gI 在当前行第一列插入 o 在下面新建一行插入 O 在上面新建一行插入 一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。...something 在前面的文本中查找something /pattern/+number 将光标停在包含pattern的行后面第number行上 /pattern/-number 将光标停在包含pattern

    2.2K30

    vim基本命令

    最实用的几个: 0(数字0)移动到本行第一个字符上  移动到行尾 。 3 移动到下面3行的行尾 gg 移动到文件头。 =  [[ G(shift + g) 移动到文件尾。 ...k 上移一个字符 j 下移一个字符 以上四个命令可以配合数字使用,比如20j就是向下移动20行,5h就是向左移动5个字符,在Vim中,很多命令都可以配合数字使用,比如删除10个字符10x,在当前位置后插入...^ 移动到本行第一个非空白字符上。 0(数字0)移动到本行第一个字符上,  移动到本行第一个字符。同0健。  移动到行尾 3 移动到下面3行的行尾 gg 移动到文件头。 ...另一个方法是行号+G,比如230G跳到230行。...利用p命令可以对剪切的内容进行粘贴 :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。 :1, 10 m 20 将第1-10行移动到第20行之后。

    1.4K20

    Vim 快速入门

    中任意一个,就可以将光标移动到最底下那一行,进入底线命令模式(也称为指令列命令模式)。...dd删除游标所在的那一整行 ndd删除光标所在的向下 n 行 d1G删除光标所在到第一行的所有数据 dG删除光标所在到最后一行的所有数据 d$删除游标所在处,到该行的最后一个字符 d0删除游标所在处,到该行的最前面一个字符...复制 yy复制游标所在的那一行 nyy复制光标所在的向下 n 行 y1G复制游标所在行到第一行的所有数据 yG复制游标所在行到最后一行的所有数据 y0复制光标所在的那个字符到该行行首的所有数据 y$复制光标所在的那个字符到该行行尾的所有数据...粘贴 p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!...:w [filename]将编辑的数据储存成另一个档案(类似另存新档) :r [filename]在编辑的数据中,读入另一个档案的数据。

    1.2K20

    vim-command

    o 在下面插入一行 O 在上面插入一行。 s 删除光标后的一个字符,然后进入插入模式。 S 删除光标所在的行,然后进入插入模式。...但如果是按下P,那么原来的第20行会被变成30行(常用) J 将光标所在行与下一列的数据结合成同一行 c 重复删除多个数据,例如向下删除10行,[10cj] u 复原前一个操作(常用) [Ctrl]+r...Esc 退出插入模式,回到命令行模式中(常用) 末行命令模式 key desc :w 将编辑的数据写入硬盘文件中(常用) :w! 若文件属性为“只读”时,强制写入该文件。...将文件还原到最原始的状态 ZZ 若文件没有更改,则不存储离开,若文件已经更改,则存储后离开 :w[filename] 将编辑的数据存储成另一个文件(类似另存新文件) :r[filename] 在编辑的数据中...,读入另一个文件的数据。

    84420

    JS 算法与数据结构之列表

    以下将描述如何实现该抽象数据类型(ADT) 一、 什么是列表 列表是一组有序的数据,每个列表中的数据项称为元素 在 JS 中,列表的元素可以是任意数据类型,且列表保存多少元素没有事先限定 要设计列表的抽象数据类型...清空列表中的所有元素 toString 返回列表的字符串形式 getElement 返回当前位置的元素 insert 在现有元素后插入新元素 append 在列表的末尾添加新元素 remove 从列表中删除元素...front 将列表的当前位置移动到第一个元素 end 将列表的当前位置移动到最后一个元素 prev 将当前位置后移一位 next 将当前位置前移一位 hasNext 判断后一位 hasPrev 判断前一位...after 参数在列表中的位置,然后使用 splice() 方法将新元素插入该位置,再将变量 listSize 加 1 并返回 true 7、clear 方法 清空列表中所有的元素 function clear...,最后一行将 listSize 和 pos 的值设为 1,表明这是一个新的空列表 8、contains 方法 判断给定值是否在列表中 function contains(element) { for

    1.7K10

    Linux之vi和vim编辑器

    O 在当前行之前插入一行 4.2.2 游标移动 指令 说明 gg 移动到文件头。...$ 移动到行尾 3$ 移动到下面3行的行尾 f(find) fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。...p 在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。 shift+p 在当前行前粘贴 :1,10 co 20 将1-10行插入到第20行之后。...:1,$ co $ 将整个文件复制一份并添加到文件尾部。 ddp 交换当前行和其下一行 xp 交换当前字符和其后一个字符 ndd 剪切当前行之后的n行。...利用p命令可以对剪切的内容进行粘贴 :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。 :1, 10 m 20 将第1-10行移动到第20行之后。

    2K11

    Linux学习笔记之vim操作指令大全

    h或退格: 左移一个字符; l或空格: 右移一个字符; j: 下移一行; k: 上移一行; gj: 移动到一段内的下一行; gk: 移动到一段内的上一行; +或Enter: 把光标移至下一行第一个非空白字符...w: 前移一个单词,光标停在下一个单词开头; W: 移动下一个单词开头,但忽略一些标点; e: 前移一个单词,光标停在下一个单词末尾; E: 移动到下一个单词末尾,如果词尾有标点,则移动到标点; b:...ctrl+e: 向下滚动一行。 ctrl+y: 向上滚动一行。 n%: 到文件n%的位置。 zz: 将当前行移动到屏幕中央。 zt: 将当前行移动到屏幕顶端。 zb: 将当前行移动到屏幕底端。...I: 在当前行第一个非空字符前插入; gI: 在当前行第一列插入; a: 在光标后插入; A: 在当前行最后插入; o: 在下面新建一行插入; O: 在上面新建一行插入; :r filename在当前位置插入另一个文件的内容...用法为: :vim[grep]/pattern/[g] [j] files g的含义是如果一个模式在一行中多次出现,则这一行也在结果中多次出现。

    2.8K21

    汇编笔记(四)长文警告

    观察这段汇编指令对应的机器码,汇编指令中的[idata]立即数,不论是否是数据还是内存单元的偏移地址,都会在对应的机器指令中出现,CPU执行的机器指令,它必须要处理这些数据和地址。...如果是8位,一个默认在AL中,另一个在8位reg中或者内存字节单元中;如果是16位一个默认在AX中,另一个在16位reg中或者内存字单元中。...我们最先想到的是用寄存器了存储,对于存放参数的存储器和存储结果的存储器,调用者和子程序的读写恰恰相反:调用者将参数送入参数寄存器,从结果寄存器中取到返回值;子程序从参数寄存器中取到参数,将返回值送入寄存器中...解决这个问题的简捷方法是,在子程序开始将子程序所有用到的寄存器的内存都保存起来,在子程序返回前恢复,可以用栈来保存寄存器中的内容。...分析: 要得到字符串,其实是要得字符串的ASCII码,十进制数码字符对应的ASCII码=十进制数码值+30H(可观察ASCII码表得出)。 如何得到十进制数码值?

    74510

    学会这21条,你离 Vim 大神就不远了!

    利用p命令可以对剪切的内容进行粘贴 :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。 :1, 10 m 20 将第1-10行移动到第20行之后。 10....以行为单位移动 # 10指代所有数字,可任意指定 10h 左移10个字符 10l 右移10个字符 10k 上移10行 10j 下移10行 $ 移动到行尾 3$ 移动到下面3行的行尾...查看缩进值 :set shiftwidth=4 设置缩进值为4 # 缩进相关 最好写到配置文件中 ~/.vimrc :set tabstop=4 :set softtabstop=4 :set shiftwidth...K 将当前视窗移最上面 Ctrl-w H 将当前视窗移至最左边 Ctrl-w L 将当前视窗移至最右边 Ctrl-ww 按顺序切换窗口 调整尺寸 # 友情提示:键盘切记不要处于中文状态...配置命令 显示当前设定 :set或者:se显示所有修改过的配置 :set all 显示所有的设定值 :set option?

    1.1K30

    学会这21条,你离Vim大神就不远了

    利用p命令可以对剪切的内容进行粘贴 :1,10d 将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。 :1, 10 m 20 将第1-10行移动到第20行之后。 10....以行为单位移动 # 10指代所有数字,可任意指定 10h 左移10个字符 10l 右移10个字符 10k 上移10行 10j 下移10行 $ 移动到行尾 3$ 移动到下面3行的行尾 以单词为单位移动...查看缩进值 :set shiftwidth=4 设置缩进值为4 # 缩进相关 最好写到配置文件中 ~/.vimrc :set tabstop=4 :set softtabstop=4 :set shiftwidth...K 将当前视窗移最上面 Ctrl-w H 将当前视窗移至最左边 Ctrl-w L 将当前视窗移至最右边 Ctrl-ww 按顺序切换窗口 调整尺寸 # 友情提示:键盘切记不要处于中文状态...配置命令 显示当前设定 :set或者:se显示所有修改过的配置 :set all 显示所有的设定值 :set option?

    1.7K30

    不会vim?看这篇就够了!

    因此只要学会使用vi编辑器后,无论在什么版本的Linux系统下,我们都能在所有的文件中“横着走” vim介绍: vi和vim都是Linux中的编辑器,不同的是,vim更适用于coding,功能相较vi更加强大...: (1)#vim 文件路径 作用:打开指定的文件 (2)#vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行 (3)#vim +/关键词 文件的路径...按键:dd (删除之后下一行上移) 注意:如果剪切了不粘贴就是删除的效果。...②剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行 按键:数字dd (删除之后下一行上移) ③剪切/删除光标所在的当前行光标之后的内容,但是删除之后下一行不上移 按键:D (删除之后当前行会变成空白行...作用:替换整个文档中每行第一个符合条件的内容 :%s/要替换的关键词/新的内容/g 作用:替换整个文档的符合条件的内容 %表示整个文件 g表示全局(global) ⑦显示行号(临时,下面会介绍如何配置全局生效

    3.4K00

    rust所有权系统

    变量存储的位置 Rust的基本标量数据类型都存在栈中,栈中的所有数据都必须占用已知且固定的大小。而大小未知或者可能变化的数据,则存储在堆内存中。...} 转移所有权 前面说过rust中每一个值有且仅有一个所有者。因此当我们将一个值绑定给另一个值的时候,会发生所有权的转移。但是下面的例子可能在你的意料之外。...实际上,Rust 基本标量类型在绑定时都是通过自动拷贝的方式。现在我们将上面代码中的x,y换成在堆上的数据类型String,来观察发生的变化。...例如: fn main() { let s1 = gives_ownership(); // gives_ownership 将返回值所有权移给 s1 println!...takes_and_gives_back 中, 同时将返回值移给 s3 println!

    59310

    快速学习-Linux(VIM编辑器)

    文件的路径 作用:打开指定的文件,并且将光标移动到指定行 #vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词(搜索) 重点:先复制出一个/etc/passwd文件,复制当前桌面下...p键【将粘贴在光标所在行的下一行】,如果想粘贴在光标所在行之前,则使用P键 ② 以光标所在行为准(包含当前行),向下复制指定的行数 按键:数字yy 2.1.3、剪切/删除 ① 剪切/删除光标所在行 按键...:dd (删除之后下一行上移) 注意:dd严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。...② 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行 按键:数字dd (删除之后下一行上移) ③ 剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移 按键:...%表示整个文件(所有行) g表示全局(global) 案例:将测试文件中的bin关键词全部替换成xxxx ⑦ 显示行号(临时) 输入:“:set nu”[number] 如果想取消显示,则输入:

    2.7K10

    RefactoringGuru 代码异味和重构技巧总结

    解决方案:在使用该方法最多的类中创建一个新方法,然后将代码从旧方法移动到这里。将旧方法的代码转换为对另一个类中新方法的引用,或者将其完全删除。...内联类 问题:一个类几乎什么都不做,也不负责任何事情,也没有为它规划额外的责任。 解决方案:将所有功能从该类移动到另一个类。 隐藏委托关系 问题:客户端从对象 A 的字段或方法中获取对象 B。...用对象替换数据值 问题:一个类(或一组类)包含一个数据字段。该字段有自己的行为和相关数据。 解决方案:创建一个新类,将旧字段及其行为放在该类中,并将该类的对象存储在原始类中。...解决方案:从子类中删除字段,并将其移动到超类。 上移方法 问题:你的子类具有执行类似工作的方法。 解决方案:使方法相同,然后将它们移动到相关的超类。...上移构造器主体 问题:你的子类的构造器的代码基本相同。 解决方案:创建一个超类构造器,并将子类中相同的代码移动到它。在子类构造器中调用超类构造器。

    1.9K40

    vim编辑器操作汇总

    -w  将所有输入的命令追加到文件   -W  将所有输入的命令写入到文件   -x ...在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。...移动光标: h: 左移 j: 下移 k: 上移 l: 右移 M: 光标移动到中间行 L: 光标移动到屏幕最后一行行首 G: 移动到指定行,行号 -G w: 向后一次移动一个字 b: 向前一次移动一个字...{: 按段移动,上移 }: 按段移动,下移 Ctr-d: 向下翻半屏 Ctr-u: 向上翻半屏 Ctr-f: 向下翻一屏 Ctr-b: 向上翻一屏 gg: 光标移动文件开头 G: 光标移动到文件末尾...下一个 N:上一个 替换命令: 把abc全部替换成123 末行模式下,将当前文件中的所有abc替换成123 :%s/abc/123/g 末行模式下,将第一行至第10行之间的abc替换成123

    1.4K70
    领券