有人分享一下对 vim 的最佳实践吗?

2015-01-06 15:02:50 +08:00
 alexapollo

背景:用过VC/VS/Matlab/iPython Notebook/PyCharm/Sublime/Notepad++/WindIDE/vim等编辑代码的工具,其中VS功能性最强但不适用linux,其他种种感觉还是vim用起来最顺手。
语言:C/C++、Python、JavaScript

vim方面,之前用过 https://github.com/spf13/spf13-vim https://github.com/amix/vimrc 等,但感觉都有点不顺手(?),因为对很多功能都不了解,而且都有没有解决的痛点
实际上我只需要:自动补完、自动记录上次编辑并可以回退、自动indent、拷贝不需要set paste、自动lint、速度快不卡顿 这些功能而已~

问题来了,不管我的这些乱七八糟的需求,有人分享下自己的vim的最佳实践吗?

15441 次点击
所在节点    Vim
50 条回复
vietor
2015-01-07 08:14:32 +08:00
Emacs才是终点
bjzhush
2015-01-07 09:10:05 +08:00
多看别人的配置,写自己的配置
这样用起来才顺手
calon
2015-01-07 09:59:01 +08:00
对 Vim 搜索的正则表达式不习惯,又不想折腾 magic 模式的,可以试试 escape_search(script_id=5066 )。
calon
2015-01-07 10:00:59 +08:00
Vim 这种可以高度个性化自定义配置的编辑器很难说有放诸四海皆准的最佳实践吧。
在28楼建议的基础上结合别人的 vimrc 自己摸索吧。
davansy
2015-01-07 10:33:49 +08:00
@adieu stackoverflow 上的那个回答简直不能再赞!打住就这样说了,你用不惯VIM 说明你根本没有深入理解他! @alexapollo 我再给你推荐几篇文章:
1. http://www.viemu.com/a-why-vi-vim.html
2. http://stevelosh.com/blog/2010/09/coming-home-to-vim/
3. http://pascalprecht.github.io/2014/03/18/why-i-use-vim/
4. http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/

依我使用VIM 的经验来看,VIM 命令实际上 并不难记忆:
davansy
2015-01-07 10:42:54 +08:00
@adieu stackoverflow 上的那个回答简直不能再赞!打住就这样说了,你用不惯VIM 说明你根本没有深入理解他! @alexapollo 我再给你推荐几篇文章:
1. http://www.viemu.com/a-why-vi-vim.html
2. http://stevelosh.com/blog/2010/09/coming-home-to-vim/
3. http://pascalprecht.github.io/2014/03/18/why-i-use-vim/
4. http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/

依我使用VIM 的经验来看,VIM 命令实际上 并不难记忆例如:
1. di( delete inner ( 翻译出来就是: 删除括号里面的内容,但不包括括号,注意是 inner
2. da( delete arround ( 删除括号里面的内容,包括括号
3. ci{ change inner { 改变 大括号里面的内容
等等...

另外 VIM 的方向键为什么用 HJKL 这个几个和表示方向的英文单词缩写 扯不上半毛钱关系 的 字幕 是有历史原因的:

Bill Joy 当时造vi 的时候没有方向键啊, 他用的是 ADM-3A 机器,这机器上 HJKL 键就表示的方向键:
可以看看wikipedia 的介绍 http://en.wikipedia.org/wiki/ADM-3A
henices
2015-01-07 11:07:29 +08:00
@jason52 @KentY 这几个选项可以缓解一下这个问题

```
Examples:
after: \m \M \V matches
'magic' 'nomagic'
$ $ $ \$ matches end-of-line
. . \. \. matches any character
* * \* \* any number of the previous atom
() \(\) \(\) \(\) grouping into an atom
| \| \| \| separating alternatives
alphabetic character
\ \ \ \ literal backslash
\. \. . . literal dot
\{ { { { literal '{'
a a a a literal 'a'

```

{only Vim supports \m, \M, and \V}

It is recommended to always keep the 'magic' option at the default setting,
which is 'magic'. This avoids portability problems. To make a pattern immune
to the 'magic' option being set or not, put "\m" or "\M" at the start of the
pattern.
KentY
2015-01-07 16:40:29 +08:00
@henices 其实这些都不是问题。magic 默认设好,随用根据需要现换是vim使用很常见的情况。我2000年第一次不得不用vim,骂的不行,太非人类了。正式开始使用是从2003,2004年,到现在也有10年了。电脑没有vim是没法接受的事。除了java,所有文本编辑全在vim里。上面所谓很多技巧,对于塌下心来,打算学习,接受这个编辑器的新用户,前2月就都掌握了。都是常识性的。vim编辑快在不用想,肌肉反应。
alexapollo
2015-01-09 19:21:40 +08:00
@iewgnaw 很棒的工程,收藏了
@adieu 这个SO回答赞暴了
@fullstack0xyz 找时间啃。。。
@zuyf 看起来不错,就是赞少了点。。
@spacewander 给的这个网址竟然是中文的,酷毙了
ivanlw
2015-07-05 15:54:54 +08:00
可以参考一下我的配置https://github.com/tolinwei/tube-vim

欢迎star和open issue

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/159678

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX