Random Posts
Tags
Categories
Recent Comments
- xlb on 你为什么会离开游戏行业?
- ychellboy on CD3:Flash 开发宝典
- Barenboim on 异步事件模型的 Self-pipe trick
- Barenboim on 异步事件模型的 Self-pipe trick
- wqchen on 异步事件模型的 Self-pipe trick
Links
Meta
Tag Archives: Vim
Vim 8 下 C/C++ 开发环境搭建
挺多人问怎么在 Vim 中搭建 C/C++ 开发环境,我本来想找篇文章发给人家,结果网上看了一圈,要不就是内容太过陈旧,要不就是太过零碎,不成体系。2018 年了,Vim 8 发布已经一年半,各大 Linux 发行版和 Mac OS X自带的 Vim 都已经跟进到 8了,不少文章还在介绍一些十年前的老方法。于是有了这篇文章。 那如何高效的再 Vim 8 中开发 C/C++ 项目呢?假设你已经有一定 Vim 使用经验,并且折腾过 Vim 配置,能够相对舒适的在 Vim 中编写其他代码的时候,准备在 Vim 开始 C/C++ 项目开发,或者你已经用 Vim 编写了几年 C/C++ 代码,想要更进一步,让自己的工作更加顺畅的话,本文就是为你准备的: 插件管理 为什么把插件管理放在第一个来讲呢?这是比较基本的一个东西,如今 Vim 下熟练开发的人,基本上手都有 … Continue reading
Vim 中文速查表/Cheatsheet(全网最完善)
春节期间整理了一份 Vim 中文速查表,免得经常东搜索西搜索的: https://github.com/skywind3000/awesome-cheatsheets/blob/master/editors/vim.txt 看了一下,应该是现在 Vim 所有中英文速查表里最完善的一份,有时候速查表比看书搜网页高效多了。
终端里正确设置 ALT 键和 BS 键
不管你在终端下使用 vim/neovim, emacs, nano 或者 zsh,你都会碰到使用 ALT 键的情况(终端下叫做 meta键),而由于历史原因,大部分终端软件的默认设置都无法正确使用 ALT 键。 要在终端下正确使用 ALT键最简单的做法是:首先将终端软件的 “使用 Alt键作为 Meta键” 的功能打开,意思是如果你在终端下按下 ALT+X,那么终端软件将会发送 <ESC>x 两个字节过去,字节码为:0x27, 0x78。 SecureCRT:终端设置 XShell4 终端设置: 其他终端软件里: Putty/MinTTY 默认ALT+X 就是发送 <ESC>x过去 Mac下面的 iTerm2/Terminal.app 需要跟 XShell / SecureCRT一样设置一下 Ubuntu 下面的 GnomeTerminal 默认也是发送 <ESC>x过去的 … Continue reading
如何优雅的使用 Vim
根据 Bram 前后几个关于高效使用 Vim的视频,大家每天需要花很多时间来编辑:代码、文档、邮件、日志 等等,除去这些外,还要分时间参加会议和人沟通,每个人的时间却都是不够的,优雅使用 Vim 无外乎: 检测不高效的地方:你的整个工作流里,什么地方比较浪费时间? 寻找一个更快的方式:官方文档,学习他人经验,自己编写 VimScript 使它习惯化:开始使用,并且不断完善 以上三点反复循环,能让你的 Vim 越来越顺手。所以重点是根据自己的工作流不断迭代。而不是象大部分教程那样教你安装一大堆插件。插件都是别人写的为了解决通用需求而提炼的东西,和每个人的具体需求都有差别。上面这三点我屡试不爽,随着时间增长,有种越来越顺手的感觉,举几个我具体碰到的例子: 问题1:边开发边参考网上解决方案的问题 比如碰到问题搜到一段代码,需要试一下,一会又看会 Chrome ,一会又切回 GVim 里去写代码,反复 ALT_TAB,有时候中间使用了一下资源管理器或者其他程序,ALT_TAB 的顺序就会被打乱,你一切换就切跑了,十分低效。 于是我用 VimScript + 内嵌 Python 写了一个功能,按快捷键可以让 GVim 在透明/不透明两种状态间自由切换: 就是 VimScript 简单封装一个函数,里面用内嵌 Python 找到 GVim 的顶层 HWND,并设置透明度。平时默认不透明,需要参考其他资料时切换成透明,参考完了又快捷键切换回来,感觉比缘来切来切去顺畅很多。 问题2:浏览文档时的窗口滚动问题 比如你在抄写或者改写一段代码,窗口分为左右两个,左边是你引用参考的源代码,右边是你正在编辑的源代码。你抄着抄着,抄到左边最后一行了,或者你想前后看看正在引用的文本,你就需要将焦点从右边切换到左边,滚动,再切换交点回来,十分麻烦,于是撸一小段 … Continue reading
用 Vim 被人说装逼,怎么办?
从没见过 Vim 的用户神经病跑到 IDE / 大JB / sublime / vscode / atom … 话题下去砸场,让他们来用 Vim;反而天天看到 IDE / 大JB / sublime / vscode / atom 的用户天天跑到 Vim 话题板块下来劝退,骂装逼,骂程序写不好用编辑器找存在感,我就有点奇怪了。 究竟是谁在这里找存在啊?为何哪些板块下有些人天生就有那么大的优越感,觉得用 Vim 的人都是程序写的差的,不如他们的人呢?甚至因为写程序主要实在思考,其次才是在编辑,所以就觉得程序写的好的人编辑速度或者打字速度很慢居然是一种光荣。 按这种神逻辑, 写中文文章大部分也是思考,是不是要建议大家把联想输入法关闭,倒退到全拼时代才满意啊?不是还有文学大师至今不会打字全靠手写么,想学吗?这就叫反智,vim提高效率以后正是帮你解放大脑去思考,编辑工作直接小脑加脊柱反射就完成了,根本不需要把大脑费在编辑上。 我看很多 IDE 重度用户也很喜欢用 vscode / sublime 的嘛,为何不准别人 Vim … Continue reading
Emacs/Vim 深度比较
生命在于折腾,折腾完了 Atom Editor,开始跟着陈斌大婶和 purcell的配置折腾 Emacs,比较下。很多人都在比较键位,比较插件,这是十分肤浅的,我们比较点深入的东西: 代码结构 Emacs 源代码:eLisp 79%, C 21% Vim 源代码:C 52%, VimScript 48% 从代码结构上来讲,Emacs的代码最多的是 elisp,C代码只是一个微内核,Vim 里C代码还是大头。当然不排除 24.X, 25.X以后 Emacs源代码里带了好几个重量级的包,而 Vim向来比较精简一些,官方没带啥大点的插件有关。去除自带插件后,Emacs的 elisp代码比例应该会下降很多,不过总体来说,Emacs有更多组件使用 elisp开发而成,也就是说可以被用户修改或者替换的地方比 Vim要多,当然速度也会相应慢一点(比如 Emacs新打开上万行的文件连续按住PageDown时cpu 100%占满),不过比较大 JB,Atom Editor来说,还是快不少。 系统接口 大框架基本类似: Vim 可以操作: buffer, window, tabpage, 光标,marker, region 跳转表等等。 … Continue reading
Vim 里如何映射 CTRL-h 为 left ?
很多人习惯在配置文件中映射 CTRL+HJKL 为光标移动,却碰到了一些问题: inoremap <c-h> <left> inoremap <c-j> <down> inoremap <c-k> <up> inoremap <c-l> <right> 映射后无效或者映射以后按 <BS>键不能删除,这是什么原因呢? 很简单,因为你的终端软件(Xshell, SecureCRT)有些老,默认配置是按下<BS>键以后 发送的是:^H (ASCII 码 0x08),而 ^H在你的 Vim 里被你 inoremap 成 了,所以你按了<BS>会被认为按下了左键。 早在 VT100终端时代,^H(ASCII码 0x08)表示<BS> 而 ^? (ASCII码 0x7f)表示<DEL>。过去 0x7f是留给 DELETE键使用的。而到了 VT220时代,DELETE已经变为 ^[[3~ … Continue reading
Vim 中正确使用 Alt映射
最简单的做法是:首先将终端软件的 “使用 Alt键作为 Meta键” 的功能打开,其次将 Alt的模式改为 ESC+字母,意思是如果你在终端下按下 ALT+X,那么终端软件将会发送 <ESC>x 两个字节过去,字节码为:0x27, 0x78。如果你使用过 NeoVim 或者 Emacs的话,这一步应该早就做过了。 XShell4 终端设置: SecureCRT:终端设置 其他终端软件里: Putty/MinTTY 默认ALT+X 就是发送 <ESC>x过去 Mac下面的 iTerm2/Terminal.app 需要跟 XShell / SecureCRT一样设置一下 Ubuntu 下面的 GnomeTerminal 默认也是发送 <ESC>x过去的 任意平台下面的 xterm 可以配置 ~/.Xdefaults 来设置这个行为。 这样的话,不管是 NeoVim … Continue reading