这也是为什么chrome、idea、atom等编辑器都会提供一个vim mode。笔者见过很多资深的程序员,包括架构师,习惯使用方向键去控制光标的移动。...在普通模式下,输入:即可进入 %s/$/sth/ 在行尾追加sth %s/^M//g 替换掉dos换行符,\^M使用ctrl+v + Enter即可输入 :g/^s*$/d 删除空行以及只有空格的行...n 查找下一个匹配 N 查找上一个匹配 2n 查找下面第二个匹配 如果觉得跳来跳去晕头转向,可以在命令模式下输入set nu开启行号 宏录制 这可以说是vim的一个杀手锏了。拿上面的例子来说。...方面的进行批量操作 其他 另外用的一些比较少的主要功能有 r 替换字符 ggVG 全选 u 恢复更改 J 合并下一行 gU 光标处转大写 ggguG 整篇文章大写转化为小写 % 跳转到下一个匹配,如在的缓冲区是剪贴板是共享的,可以方便在多个文件中复制 bp 跳转到上一个缓冲区 bn 跳转到下一个缓冲区 退出编辑器 wq 保存当前文件并退出 wqa 保存所有文件并退出 q!
这也是为什么chrome、idea、atom等编辑器都会提供一个vim mode。笔者见过很多资深的程序员,包括架构师,习惯使用方向键去控制光标的移动。...n 查找下一个匹配N 查找上一个匹配2n 查找下面第二个匹配 如果觉得跳来跳去晕头转向,可以在命令模式下输入set nu开启行号。 宏录制 这可以说是vim的一个杀手锏了。拿上面的例子来说。...将文件中的每一行添加到ArrayList中。...r 替换字符ggVG 全选u 恢复更改J 合并下一行gU 光标处转大写ggguG 整篇文章大写转化为小写% 跳转到下一个匹配,如在上按%,则跳转到相应的:e /tmp/a 在同一个编辑器内打开...同一个编辑器的缓冲区是剪贴板是共享的,可以方便在多个文件中复制bp 跳转到上一个缓冲区bn 跳转到下一个缓冲区 退出编辑器 wq 保存当前文件并退出wqa 保存所有文件并退出q!
例题描述和简单分析有 Excel 文件,数据如下所示:A列的数据由多段组成,每一段是连续的 N 行 +1 个空行,现在要新 B 列,将每段 N 行的字符串用横线连接起来,填在空行处,B 列其他位置保持空...([null]*(~.len()-1)|~.to(~.len()-1).concat(""-"")).conj()",A1:A28)如图:简要说明:当上一个成员为空串时,新分一组,去掉每组内的空串。...将每组的成员用 - 拼接成串,计算每组有多少个成员就在 [串] 前补齐多少个空串。
,按标点或单词分割 W 跳到下一个字首,长跳,如end-of-line被认为是一个字 e 跳到下一个字尾 E 跳到下一个字尾,长跳 b 跳到上一个字 B 跳到上一个字,长跳 0 跳至行首,不管有无缩进,...就是跳到第0个字符 ^ 跳至行首的第一个字符 $ 跳至行尾 gg 跳至文首 G 调至文尾 5gg/5G 调至第5行 gd 跳至当前光标所在的变量的声明处 fx 在当前行中找x字符,找到了就跳转至 ; 重复上一个...l 跳转到右边的窗口 ctrl-w t 跳转到最顶上的窗口 ctrl-w b 跳转到最底下的窗口 八、多标签编辑 :tabedit file 在新标签中打开文件file :tab split file...在新标签中打开文件file :tabp 切换到前一个标签 :tabn 切换到后一个标签 :tabc 关闭当前标签 :tabo 关闭其他标签 gt 到下一个tab gT 到上一个tab 0gt 跳到第一个...,只要执行gg=G就能搞定 十二、如何在vim中编译程序 在vim中可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make 编译后的结果就显示在了
跳到下一个字首,长跳,如end-of-line被认为是一个字 e 跳到下一个字尾 E 跳到下一个字尾,长跳 b 跳到上一个字 B 跳到上一个字,长跳 0 跳至行首,不管有无缩进,就是跳到第0个字符 ^...跳至行首的第一个字符 $ 跳至行尾 gg 跳至文首 G 调至文尾 5gg/5G 调至第5行 gd 跳至当前光标所在的变量的声明处 fx 在当前行中找x字符,找到了就跳转至 ; 重复上一个f命令,而不用重复的输入...l 跳转到右边的窗口 ctrl-w t 跳转到最顶上的窗口 ctrl-w b 跳转到最底下的窗口 多标签编辑 :tabedit file 在新标签中打开文件file :tab split file 在新标签中打开文件...gg=G就能搞定 如何在vim中编译程序 在vim中可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make 编译后的结果就显示在了.../目录 - 转到上层目录 gb 转到上一个 bookmarked directory i 改变目录文件列表方式 ^l 刷新当前打开的目录 mf - 标记文件 mu - unmark all marked
由于不需要图形界面,vi是效率很高的文本编辑器。尽管在linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。...e:跳至当前或下一个单词的词尾 b:跳至当前或上一个单词的词首 #w:以当前光标为起点跳至第#个单词的词首 #e:以当前光标为起点跳至第...#个单词的词尾 #b:以当前光标为起点跳至第#个单词的词首 行内跳转 0:数字0,跳转到绝对行首 ^:跳转到行首的第一个非空白字符...$:跳转到绝对行尾 行间跳转 gg:跳转到第一行 G:跳转到最后一行 #gg:跳转到第#行 #G:跳转到第#行 翻屏...:删除当前光标所在行的内容,保留空行 dG:从光标所在行删除到文件尾 末行模式下d命令的使用: 语法:“:StartADD,EndADDd” 这里的StartADD与EndADD是指一个范围,例如:
linux实用技巧:你该使用ctags查找源码了 ---- 1.ctags简介: “哦,这个多的文件,我该如何去查看XX函数的实现!”相信这是很多朋友的抱怨。...tags路径必须写入vim的配置文件中,才能在vim里面正确跳转,所以我们要进行添加: ?...完成之后我们就可以进行查找了,这里我们以printf的为例(你很快就会见识到ctags的威力了),如果是有经验的程序员,我想你一定会很快的反应出printf函数在什么文件中,呵呵。...[{ 转到上一个位于第一列的"{"; }] 转到下一个位于第一列的"{"; { 转到上一个空行; } 转到下一个空行; gd 转到当前光标所指的局部变量的定义...; * 转到当前光标所指的单词下一次出现的地方 ; # 转到当前光标所指的单词上一次出现的地方; 关于ctags更多的命令大家可以查看man手册,以后妈妈再也不用担心我读源代码了
标签命令 :tabe fn 在一个新的标签页中编辑文件fn gt 切换到下一个标签页 gT 切换到上一个标签页 :tabr 切换到第一个标签页 :tabl 切换到最后一个标签页...:e file 把file加载到新的缓冲区中 :bn 跳转到下一个缓冲区 :bd 删除缓冲区(关闭文件) :sp fn 分割窗口,并将fn加载到新的窗口中 退出编辑器 :...,按标点或单词分割 W 跳到下一个字首,长跳,如end-of-line被认为是一个字 e 跳到下一个字尾 E 跳到下一个字尾,长跳 b 跳到上一个字 B 跳到上一个字...]G 跳到第N行,如0G,就等价于gg,100G就是第100行 fx 在当前行中找x字符,找到了就跳转至 ; 重复上一个f命令,而不用重复的输入fx tx 与fx类似,但是只是跳转到...x的前一个字符处 Fx 跟fx的方向相反 ),( 跳转到上/下一个语句 * 查找光标所在处的单词,向下查找 # 查找光标所在处的单词,向上查找 `.
标签命令 :tabe fn 在一个新的标签页中编辑文件fn gt 切换到下一个标签页 gT 切换到上一个标签页 :tabr 切换到第一个标签页 :tabl...:e file 把file载入到新的缓冲区中 :bn 跳转到下一个缓冲区 :bd 删除缓冲区(关闭文件) :sp fn 切割窗体。...右 ctrl-f 上翻一页 ctrl-b 下翻一页 % 跳到与当前括号匹配的括号处,如当前在{,则跳转到与之匹配的}处 w 跳到下一个字首,按标点或单词切割 W ...长跳,如end-of-line被觉得是一个字 e 跳到下一个字尾 E 跳到下一个字尾,长跳 b 跳到上一个字 B 跳到上一个字,长跳 0 跳至行首,无论有无缩进,...找到了就跳转至 ; 反复上一个f命令,而不用反复的输入fx tx 与fx类似,可是仅仅是跳转到x的前一个字符处 Fx 跟fx的方向相反 ),( 跳转到上/下一个语句 *
24 Shift+Enter 在当前行与下一行之间插入一个空行,光标处于新加的空行上 25 Ctrl+Shift+u 所选内容进行大小写转换 26 Ctrl+Shift+[/] 从当前光标开始,一直选择到当前光标所在代码段的起始或结束位置...快捷键 功能描述 01 Ctrl+f 在当前标签页查找 02 F3 跳转到下一个查找结果 03 Shift F3 跳转到上一个查找结果 04 Ctrl+r 在当前标签页进行替换操作 05 Ctrl+Shift...跳出当前的类,到上一级 05 Alt+F9 让代码运行到光标所在处 06 Alt+F8 打开一个表达式面板,进行进一步的计算 07 F9 跳转到下一个断点处 08 Ctrl+F8 在当前光标处,增加会删除断点...快捷键 功能描述 01 Ctrl+n 打开类查询框 02 Ctrl+Shift+n 打开文件查询框 03 Ctrl+Alt+Shift+n 打开文本查询框 04 Alt+ 跳转到上一个/下一个编辑器标签...15 Ctrl+Shift+b 打开变量类型所对应的类代码,只对变量有用 16 Alt+上下箭头 跳转到类中上一个/下一个方法的签名上 17 Ctrl+F12 打开类的结构列表 18 Ctrl+h 打开类的继承关系列表
当前行下一行插入空行 Shift+Enter 文本编辑器 当前行插入空行 Ctrl+Shift+Enter 文本编辑器 定位到最后编辑的位置 Ctrl+Q 全局 恢复上一个选择 Alt+Shift...Ctrl+Shift+F6 全局 上一个视图 Ctrl+Shift+F7 全局 上一个透视图 Ctrl+Shift+F8 全局 下一个编辑器 Ctrl+F6 全局 下一个视图 Ctrl+F7 全局 下一个透视图...Java编辑器 显示大纲 Ctrl+O 全局 在层次结构中打开类型 Ctrl+Shift+H 全局 转至匹配的括号 Ctrl+Shift+P 全局 转至上个编辑位置 Ctrl+Q Java编辑器 转至上一个成员...全局 查找目标文件 ctrl+shift+R 全局 打开搜索对话框 Ctrl+H 全局 工作区中的声明 Ctrl+G 全局 工作区中的引用 Ctrl+Shift+G 工作区域的类 查看某一个类的继承类或者实现类...Ctrl+鼠标左键 :跳转到对应方法(字符串)的上一处,如实现或接口处等 Window > preferences > java > editor > Folding 其中的Initially
,再次Ctrl+D选择该词出现的下一个位置,在多重选词的过程中,使用Ctrl+K进行跳过,使用Ctrl+U进行回退,使用Esc退出多重 ### 编辑 Ctrl+Shift+L:将当前选中区域打散...Ctrl+Shift+A:选择光标位置父标签对儿 ### 查找(Find) Ctrl+F:进行标准查找 F3:跳至当前关键字下一个位置 Shift+F3:跳到当前关键字上一个位置...Ctrl+Shift+ F6:上一个错误 ### 跳转(Goto) Ctrl+P:跳转到指定文件 Ctrl+R:跳转到指定符号 Ctrl+Shift+R: F12...: Ctrl+G:跳转到指定行号 Alt+-:跳转到底部 Alt+Shift +-: ### 文件开关(Switch File) Ctrl+Pagedown:下一个文件...Ctrl+Pageup:上一个文件 Ctrl+Tab:下一个文件(stack) Ctrl+Shift + Tab:上一个文件(stack) Alt+O: Alt+
less 命令与 more 命令相似,都可以用来查看文件内容,不同的是 less 命令可以向前或向后查看文件,而 more 命令只能向前查看。...选项说明 -e #文件内容显示完成后,自动退出 -f #强制显示文件 -g #不加亮显示 -l #忽略大小写 -N #行首显示行号 -s #合并多个空行只显示一行 -S #不换行显示内容...的内容,并在每行行首加上行号 less -N mingongge.txt #下/上一页: (down), b (up) #less 命令转到文件的末尾/开始: G (end), g...(start) #向前查找字符串(按 n N 跳转到下一个/上一个) /mingongge #向后查找字符串(按 n N 跳转到下一个/上一个) ?...mingongge #退出 less 命令 q 常用的用法基本就这些,与more命令一样,都属于比较常用且简单的命令。
重复上次命令 " : 依次沿着你的跳转记录向回跳 (从最近的一次开始) " : 依次沿着你的跳转记录向前跳 " ju(..../-1join 压缩空行(多行空行合并为一行) " :g/^$/,/..../-j 压缩空行(多行空行合并为一行) " :g/^/pu _ 把文中空行扩增一倍 (pu = put),原来两行间有一个空行,现在变成2个 "...可以显示出当前所有的buffer " :bn 跳转到下一个buffer " :bp 跳转到上一个buffer " :wn...存盘当前文件并跳转到下一个 " :wp 存盘当前文件并跳转到上一个 " :bd 把这个文件从buffer列表中做掉 " :b
接着使用 vim 中的典型动作,例如$(转到行尾)、f(转到在 f 之后键入的下一个字符的第一个匹配项,例如f(将使光标移至下一个 (上)、%(转到匹配的定界符)或w(转到下一个单词的开头)/b(转到上一个单词的开头...它有几种模式,具体取决于你要执行的移动类型: 按行:此模式允许你跳至当前(或所有打开的)缓冲区中的任何行。 按单词:此模式允许你跳转到当前(或所有打开的)缓冲区中的任何“单词”。...按字符:如果单词模式无法跳转到特殊的运算符或字符(因为无法识别为单词),则可以使用此模式跳转到当前缓冲区(或所有打开的缓冲区)中的任何字符。...2 其他模态技巧 对模态编辑而言,以下是我希望编辑器具备的功能列表,当然不止这些: C-i和C-o:这些使我可以跳转到缓冲区中的某个文件 / 某个位置,然后返回到C-o之前我所在的位置,或者输入C-i...8 atom 最后来谈 GitHub 的编辑器 atom。我记得我首次运行 atom 时的第一反应是:“这个编辑器真漂亮。”默认的颜色方案 One 是大家都熟悉的通用颜色方案。
快捷键 描述 Ctrl+X 剪切行(可以选择空行) Ctrl+C 粘贴行(可以选择空行) Alt+ ↑ / ↓ 向上/向下移动行 Shift+Alt + ↓ / ↑ 向上/向下复制行 Ctrl+Shift...Ctrl+Shift+M 显示问题面板 F8 转到下一个错误或警告 Shift+F8 转到上一个错误或警告 Ctrl+Shift+Tab 导航编辑器组历史记录 Alt+ ← / → 后退/前进 Ctrl...+M 切换选项卡移动焦点 2.4 查找与替换快捷键 介绍各种查找工具和替换工具的快捷键 快捷键 描述 Ctrl+F 查找 Ctrl+H 替换 F3 / Shift+F3 查找下一个/上一个 Alt+...(可以输入正则进行匹配) Ctrl+D 将所选内容添加到下一个查找匹配项 Ctrl+K Ctrl+D 将上一个选择移至下一个查找匹配项 Alt+C / R / W 切换区分大小写/regex/whole...Ctrl+Shift+Tab 打开上一个 Ctrl+K P 复制活动文件的路径 Ctrl+K R 在资源管理器中显示活动文件 Ctrl+K O 在新窗口/实例中显示活动文件 2.9 显示控制快捷键
0 前言# 本文参考以下链接: 指尖飞舞: vscode + vim 高效开发 vim 备忘清单 一直憧憬 vim 的全键盘操作, 于是开始折腾将 obsidian 和 vscode 的编辑模式都转到...vim, obsidian 使用自带的 vim 模式加 vimrc 插件, vscode 使用 vim 插件 为了保持 obsidian, vscode, wsl 及 linux 中的 vim 习惯一致...1.1 示例# vim 中的操作都是通过如下方式进行操作的: [数字] / [数字] / >i{ | 将当前 {} 内的内容向右缩进.../下一个 单词开始 ge/e | 上一个/下一个 单词末尾 行 0/$ | 行首/行尾 ^ | 行首 (非空白) 字符串 Fe/fe | 移动到上一个/下一个 e To/to |...在上一个/下一个 o 之前/之后移动 | / n| | 转到一个 /n 列 文档 gg/G | 第一行/最后一行 :n/nG | 转到第 n 行 { / } | 上一个/下一个空行 窗口
Home ^ 将光标跳转到本行的行首 End $ 将光标跳转到本行的行尾 0 ...跳转到绝对行首 行间的跳转: (#代表任意数字) 1G=gg 跳转到文件的首行 G ...跳转到文件的尾行 #G 跳转到文件的#行(命令模式) :# 跳转到文件的#行(末行模式) 句间移动...world 从下向上查找world n 定位下一个匹配的字串 N 定位上一个匹配的字串 扩展模式字符串替换: :s/old/...new 将当前行中查找到的第一个字符“old” 串替换为“new” :s/old/new/g 将当前行中查找到的所有字符串“old
领取专属 10元无门槛券
手把手带您无忧上云