随笔分类 -  vim

YouCompleteMe的completer和parser
摘要:intro 在使用YCM完成c++输入提示(complete)时可以注意到一个细节:通常只有后输入“.”,"->","::"的时候提示的才是提示字段的类型信息。对于函数,提示包含了函数的参数类型等信息;对于数据成员,提示中也包含了类型信息。 对应地,其它情况下尽管提示中可能会包含变量名,但是不会在p 阅读全文

posted @ 2024-10-18 20:34 tsecer 阅读(24) 评论(0) 推荐(0) 编辑

YCM中previewwindow显示函数类型信息如何实现
摘要:intro 在使用YCM的自动提示功能时,可以注意到选择complete提供的条目时,窗口的上面还有一个小窗口提示这个函数的声明信息,包括了函数的参数列表和类型信息。 这个对写代码非常有用,对于一段时间不看的函数,很容易记不得函数的参数列表和各自的类型信息,以至于在官方issue中希望提供一个可以显 阅读全文

posted @ 2024-10-16 21:09 tsecer 阅读(14) 评论(0) 推荐(0) 编辑

vim跳转到函数开始([[)和转到声明(gd)的一些实现细节
摘要:intro 在vim的入门介绍中,明确说明了vim是一个"文本编辑器"(text editor)而不是一个程序编辑器,和C/C++的预处理(preprocessor)一样,vim本身并不理解程序的结构。 Introduction intro Vim stands for Vi IMproved. I 阅读全文

posted @ 2024-09-23 21:03 tsecer 阅读(221) 评论(0) 推荐(0) 编辑

从vimdiff get命令为什么不是dg看vim cmd解析
摘要:intro 当使用vimdiff来获取另外一个文件的diff内容时,在Ex模式下使用的是diffget,但是在normal模式下对应的cmd却不是对应的dg而是另一个do(diff obtain),这个都少有些意外。 单单的对于"为什么vim使用do而不是dg命令来获得diff?"这个问题,其实在v 阅读全文

posted @ 2024-08-09 19:26 tsecer 阅读(11) 评论(0) 推荐(0) 编辑

vim内置terminal的使用及实现
摘要:intro 在使用vim的时候,一个非常常用的功能就是搜索功能。 搜索 在缺少工程级别搜索的情况下,搜索通常不是一次完成的:通常的场景是提供一个最明显的关键字(并且忽略大小写),然后从结果中再缩小搜索范围,直到找到搜索结果。在这个迭代的过程中,可能需要从上次的输出中拷贝一部分、简单编辑之后再次搜索。 阅读全文

posted @ 2024-07-12 20:24 tsecer 阅读(303) 评论(0) 推荐(0) 编辑

YouCompleteMe如何获得未使用的端口
摘要:intro 由于每次vim都启动一个ycmd服务进程,并且端口地址是由vim客户端指定的(因为ycmd启动之后vim客户端需要连接过去),所以vim在指定端口的时候就需要给出一个当前没有使用中的端口。 那么如何获得一个未使用的端口呢? tsecer@harry: ps aux | fgrep ycm 阅读全文

posted @ 2024-05-16 18:15 tsecer 阅读(10) 评论(0) 推荐(0) 编辑

YouCompleteMe completer及插件模型
摘要:问题 尽管VS Code提供了在windows下通过ssh访问linux机器的各种便利,但是使用vim在linux环境下开发可以方便的使用从Unix系统中继承的强大工具集(例如grep命令),并且构建、部署也更加方便。加上vim丝滑的操作流,使得linux环境下vim开发依然有着很大的吸引力。 但是 阅读全文

posted @ 2024-04-24 20:23 tsecer 阅读(41) 评论(0) 推荐(0) 编辑

从yank put看vim寄存器
摘要:寄存器 在软件开发过程中,Ctrl-C和Ctrl-V是程序员的核心技能,这就不可避免的涉及到复制,粘贴,删除。在windows环境下,大家习惯了只有一个系统剪切板,复制之后直接粘贴还是比较方便。在vim环境下,有更多的寄存器可以选择:26个字母(大小写分别对应不同用途),还有0——9共10个数字对应 阅读全文

posted @ 2024-02-01 17:49 tsecer 阅读(46) 评论(0) 推荐(0) 编辑

vim中一些有用但是不常用功能备忘
摘要:背景 在vim的使用过程中,会发现一些比较冷门但是也非常有用的命令,整理备忘一下。 行中(gm) 修改一行开始和结尾都有比较方便的命令,但是当行比较长的时候,如果想移动到中间某个为止就比较麻烦,此时可以通过gm来首先移动到行的中间,然后再使用w/b甚至f/u来进行小范围移动。 复选(gv) 在手动缩 阅读全文

posted @ 2023-03-18 15:42 tsecer 阅读(40) 评论(0) 推荐(0) 编辑

从括弧类匹配高亮看vim内置plugin及用户自定义command
摘要:引入 vim内置命令中包含了text object相关功能,这些功能可以在vim的 :h motion.txt 帮助文档中找到相关帮助。这个功能看起来实现比较简单,而且是一个非常实用的功能。这个功能之所以加入比较晚,在于它使用a和i并不是传统的motion动作,而是normal模式下的插入(inse 阅读全文

posted @ 2022-09-07 19:43 tsecer 阅读(208) 评论(0) 推荐(0) 编辑

YouCompleteMe插件的一些实现
摘要:一、vim对python脚本的支持 vim作为一个开发环境,不仅支持原生的vim脚本,还支持其它的动态脚本语言,例如lua、ruby、perl、python等。这些脚本语言在vim的源代码中都是通过if_XXX型文件实现。具体对于python的支持来说,实现在if_python.h、if_pytho 阅读全文

posted @ 2022-03-11 22:44 tsecer 阅读(566) 评论(0) 推荐(0) 编辑

vim中重复及redo、undo实现
摘要:零、问题 在vim中有一个,英文句号(.)能够重复前一个执行的命令,在vim的帮助文档中可以看到下面的描述. Repeat last change, with count replaced with [count]. Also repeat a yank command, when the 'y' 阅读全文

posted @ 2021-09-17 20:47 tsecer 阅读(1348) 评论(0) 推荐(0) 编辑

vim中文件类型识别、语法高亮及缩进实现流程
摘要:一、文件类型 在使用vim编辑一个文件的时候,如果能够识别出文件的类型,加上对应的高亮规则,可以使文件的查看更加醒目,这个功能几乎是使用vim浏览文件的一个核心诉求。另外,在进行文件编辑的时候,特别是使用vim写代码的时候(典型的场景是通过vim写C/C++代码),如果能够智能缩进,还可以减少敲代码 阅读全文

posted @ 2021-07-12 19:39 tsecer 阅读(1237) 评论(0) 推荐(0) 编辑

vim中从复制粘贴到文件类型识别及语法高亮
摘要:一、拷贝/粘贴 拷贝粘贴可能是计算机中最重要的一个操作,该操作发明者“Larry Tesler”于2020年逝世,但是这个操作的提出者还是因为这个操作被缅怀和记忆。在常规模式(normal mode)下,大家都知道通过yank+paste进行操作,但是有时候在命令模式(command mode)下也 阅读全文

posted @ 2021-07-02 20:28 tsecer 阅读(336) 评论(0) 推荐(0) 编辑

vim的script、function及command
摘要:一、脚本 和大部分Unix工具一样,vim也提供了内置的脚本功能,通过脚本可以完成定制化设置。脚本的优点在于正如它名字所暗示的:可以存储在文件中。而文件可以持久化,也就是下次打开的时候依然存在。脚本中通常还可以定制函数以实现复用。例如,在常用的CtrlP插件中,大部分功能都是使用vim内置命令完成的 阅读全文

posted @ 2021-05-17 20:29 tsecer 阅读(1452) 评论(0) 推荐(0) 编辑

Vim中如何移动光标
摘要:一、问题 明显的,在normal模式下,通过hjkl四个按键进行移动,但是之类的问题是vim如何移动光标而不是用户怎么移动光标。在bash界面中,我们通过通过方向键来移动光标位置。在vim中,vim是完全控制了当前终端,假设你获得了终端的控制权,你将如何控制光标在整个终端的任意位置进行移动呢? 二、 阅读全文

posted @ 2021-05-15 18:59 tsecer 阅读(780) 评论(0) 推荐(0) 编辑

command模式下命令的匹配及help内容的搜索
摘要:一、command模式下命令如何匹配 在command模式下,输入:h默认执行的是help,但事实上,还有字典序更靠前的hardcopy命令,那为什么这个h匹配的不是hardcopy而是help呢?在代码中其实已经做了说明ex_cmds.h: /* * This array maps ex comm 阅读全文

posted @ 2021-05-14 21:18 tsecer 阅读(163) 评论(0) 推荐(0) 编辑

为什么vim编辑模式下ctrl-w可以前向删除单词及按键映射的展开
摘要:一、问题 在vim的编辑模式下,我之前一直以为只能进行字符的插入操作,但是意外看到可以在编辑模式下通过ctrl-w来前向删除一个单词,并且可以通过ctrl-h来前向删除一个字符。根据通常的ASCII码内置控制方法,通过ctrl-h对应的是ASCII码的BS(backspace)字符,所以通过ctrl 阅读全文

posted @ 2021-05-13 20:15 tsecer 阅读(581) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示