V 字君的 Vimpress

Everything I learned about Vim

  • 首页
  • 关于
  • 标签
  • 分类
  • 归档

vim 实栗 (1) :替换重复文本

发表于 2018-08-30 | 分类于 vim , vim-example , replace-text , plugin

今儿开始,又一个新坑:vim 实栗。这个系列主要目的是围绕特定的主题,在 vim 实际操作一下。如果你有好的建议,或者有更好的办法,一定要分享一下。

这一篇咱们就来说一下怎么替换重复文本

visual-block 替换

如果我们要替换的文本都 “互相挨着”,能用一个长方形框住的话,那我们就可以直接用 visual-block 模式来解决了。比如下图里,我们想把所有的 print(a + b + c) 变成 assert (这里主要是为了说明怎么替换,代码究竟能不能跑这里就先忽略了)

  • 按下 <c-e> (ctrl + e) 进入 visual-block mode
  • 然后 6j 和 e 选中文本
阅读全文 »

vim 基础:简单的文字编辑 (4)

发表于 2018-08-29 | 分类于 vim , vim-basic

motion 是个十分有用并且核心的概念,我们如何快速移动光标,甚至在不同文件之间迅速切换就靠它了。在这之后,咱们再介绍一个兄弟概念 operator。在这一篇之后,基本就可以达到流畅 vim 编辑,妥妥的。咱们先来一个举个栗子介绍一下 operator 和 motion 这哥俩加在一块有多爽。

举个栗子

如果现在光标在图下这个位置,我们想把从光标向右到括号的内容都删掉

也就是删掉 , c=0 这段代码,应该怎么做呢?很容易,我们就直接告诉 vim

删掉从光标到 0 的内容

就好了。而把这句话 “翻译” 成 vim 能懂得操作也很容易:

df0

嗯,按下这三个键就搞定了。也就是说,刚才那句话可以和这三个键对应:

删掉 (d for delete)从光标到 0 (f0) 的内容

现在让我们来仔细拆分一下刚才究竟都发生了啥…首先我们说怎么通过 motion 来移动光标。

阅读全文 »

vim 基础:简单的文字编辑 (3)

发表于 2018-04-04 | 分类于 vim , vim-basic

在这篇开始之前,咱们先说个别的。在上一篇简单的文字编辑(2)里咱们说了:

i, a, A, o, O

你有没有觉得既然按小写 i 能进入插入模式,那大写的 I 是不是也可以?必须的(好奇的话可以试试,非常好用)!! 其实 vim 里很多东西都是大小写一块配套的,简直是越想越觉得设计者脑洞大。

好啦,咱们接着上一篇的内容说,除了 i/I, a/A, o/O之外,其实还有不少进入插入模式的办法。这一篇咱们说一些别的进入插入模式的办法。而且还是一箭双雕,

删除 + 进入插入模式

阅读全文 »

vim 工具:自带帮助系统

发表于 2018-03-15 | 分类于 vim , vim-tool

真的,说认真的,咱们这一篇说怎么用 vim 自带的帮助系统 (help system)。这一篇会比较短,简洁明了。

阅读全文 »

vim 理论 (1):模式

发表于 2018-03-09 | 分类于 vim , vim-concept

我们先来想想文本本身。对于文本,基本上,我们就做两件事:

  1. 内容处理
  2. 文本排版

很多常用的很多工具其实是把这两个功能合二为一的,比如 Word, PowerPoint,Excel。而编程本身其实并不那么涉及到排版,所以你见不到什么人用 Word 去编程,而是用 文本编辑器,比如

  • Atom
  • Sublime text
  • Vim
  • Emacs
  • Notepad++
  • Visual Studio Code …

以命令行(command line) 和终端(terminal)为主的文本编辑器其实对普通用户都不是很友好。但你不是普通人啊,你决定学习 vim,除去图形界面的干扰,把注意力放在最关键的地方:

文本

因为只有缩短文本编辑的时间,你才能用更多的时间思考,在灵感消失之前,把它转换成代码。而且,你能因此发现另一个世界

命令行(command line)的世界

阅读全文 »

vim 基础:简单的文字编辑 (2)

发表于 2018-03-04 | 分类于 vim , vim-basic

自上一篇说了怎么退出之后,我们可以说说怎么进入插入模式,再怎么从插入模式回到普通模式。

老样子,咱们打开 vim 之后,直接输入 :set nocompatible,进入真正的 vim。

就如上次所说,只要左下角没有什么状态显示,我们就是在普通模式里的。只要按下 i,我们就进入插入模式 (insert mode) 了 。而字母 i 就是 insert 的首字母。

在插入模式里,这键盘就是正常的键盘了,也就是说我们按下什么键,就能输入什么键了。

这一篇结束了… 再见

阅读全文 »

vim 基础:简单的文字编辑 (1)

发表于 2018-02-20 | 分类于 vim , vim-basic

在上一篇留言里,好几个小伙伴都说

希望我继续写下去,即使(或虽然)不知道我写的是是啥…

在大家的鼓励下,我又回来了。而且,经过一个春节的反思和吃喝之后,我打算把以前的推倒重来。因为这样既可以偷懒的一点点写,也可以把很多让人晕头转向的概念分散开,读起来也容易懂。这样一举两得的事情,我竟然之前没有想到,我也是佩服自己。最终目标,是希望这样一篇篇写来

从没有任何插件开始,一步步到实现 “vim 插件自由” …
(于是,在各种我们要追寻的 “自由” 里,又多了个目标)

作为一同跨进 21 世纪新好青年,你自然是知道怎么找到和安装 vim 的了。如果你打开 vim,你基本上应该看到的是这样的 (没错,现在 vim 已经都 8.0 了)。

二话不说,我们直接按下 : (分号),输入 set nocompatible1,然后回车。之后,开始真正的 vim。

奇怪的 vim

在真正开始之前,要先给大家打打气。因为 vim 里很多东西都和平时常用的文字编辑器都不一样,比如

阅读全文 »

用 vim 来磨练一下人生意志呗

发表于 2018-02-10 | 分类于 vim , neovim , mind-pseudo-code

vim 挺难的,真的。

但难点多好啊。你不觉得现在很多东西一下都变得简单了反而让人特别不安么,尤其是那些本应该很难或者说需要花时间的那些事。举栗子,

我身边已经好几个人,用了一两个周末听完了一个课程,据说就已经掌握编程精要了,
还有几个,一个月之内已经熟用 python,成为数据分析师了,
另几个,好像已经结识行业翘楚,随时等待机会创造双赢了。

很多东西都是需要花时间才能掌握,并因此获得进步的。学习是这样,工作是这样,就连游戏也是这样。打怪升级要花时间,练习枪法、走位、战术这些不都要花(大量)时间么。所以老话说量变产生质变也不是没有道理。

当然,除了时间,还要有正确的方向。我到现在还依稀记得高中物理课上的一个发射火箭遇卫星的例子,如果算错方向,那么永远都遇不上,并总结为 “失之毫厘,谬以千里”。这多年过去了,知识都还给老师了(甚至这个例子我可能都记错了),但这句话倒还是记得。而寻找方向,就要沉下心去搜集资料,仔细分析,甚至去试错。所以,总结起来就是

  1. (花时间)寻找方向
  2. (花时间)检验方向,评估,甚至去试错
  3. (花时间)总结反思。

Problem Solving 的思维代码

如果你喜欢编程,那就干脆把刚才的过程写成这段 “思维代码” 1,

1
2
3
4
5
6
def problem_solving(problem):
optimal_solution = None
possible_solutions = research_and_find_solution(problem)
for solution in possible_solutions:
optimal_solution = better_solution(solution, optimal_solution)
return optimal_solution

这段思维代码虽然过于简单,但也有很多可展来讨论的部分,也有很多可以拓展的部分(比如,可以把问题分类,或者存下每次的最佳解,称之为 knowledge,等等等等,一瞬间想到好多),咱们以后慢慢再拓展也不迟。

说了这么说,那……这一切和 vim 有毛关系啊……

阅读全文 »

为什么你需要在意快捷键

发表于 2017-04-22 | 分类于 vim

其实很多东西并不是,也不能是一股脑学成的,比如一个非常重要的东西:快捷键。

无论你是否编程,了解并熟知快捷键都是必要的,因为你会在因此节省大把时间。 我总相信这么一个原则:

键盘在大多数情况下比鼠标要快。

即使你不编程,也同样适用。

  • 比如,如果你精通 Excel 的各种快捷键,你的任务处理速度一定是别人的指数倍,对罢?
  • 同样,使用 Word 也是如此。我在学会 LaTex 和熟悉 vim 之前,其实是用 Word 在课上记笔记的,速度一样不慢,基本能做到和老师版书同步。原因就是因为所有的公式输入我都不用鼠标,全部都通过键盘完成。
阅读全文 »

Vim 的 colorscheme

发表于 2017-02-12 | 分类于 vim , colorscheme

时隔这么久,终于有时间来写下一篇了!以后咱们尽量 “少量多餐”,多写点篇。如果你都一路看到了这篇,就说明你已经在 “坑” 里了,所以咱们摘掉 “入坑指南” 几个字,开始谈谈 vim 的一些 “表面工程”: colorscheme。

无论你使用的是什么开发软件,应该都能找到更改 colorscheme 或者是 “配色方案” 的设置。对于长期对着屏幕码代码的人来说,选择不易造成眼睛疲劳,看着也不错的配色(比如大伙熟知的 monokai 或者是 solarized)是件不小的事儿。其实选择什么样的 colorscheme 全靠个人喜好,咱们这篇主要是讲去哪里找,以及如何快速更改 colorscheme。

colorscheme: base16 和 vim-gotham

有了前面咱们提过的插件 vim-plug,安装任何一个 colorscheme 都很容易。目前 V 字君使用的是 base16-vim,安装以及相关设定如下:

1
2
3
4
5
6
7
" vim-plug 设置
Plug 'chriskempson/base16-vim'

" 使用 256 颜色库
let base16colorspace=256
" 使用 base16 中 base16-oceanicnext
colorscheme base16-oceanicnext
阅读全文 »
12
VZJ

VZJ

17 日志
12 分类
14 标签
RSS
GitHub
© 2018 VZJ
由 Hexo 强力驱动
|
主题 — NexT.Mist v6.0.4