编程与软件工程stevelosh.com
回归 Vim
Coming Home to Vim
2010 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这是 Steve Losh 在 2010 年写的 Vim 入门长文,讲述他为何从 TextMate 回归 Vim,并分享了自己的 .vimrc 配置、插件选择和学习心得。文章把 Vim 命令比作由动词、名词和形容词组成的“编辑语言”,帮助读者理解 Vim 的组合式操作逻辑。
为什么经久不衰:它把 Vim 的学习曲线拆解成可理解的心智模型,十多年来反复被推荐,是新手入门 Vim 的经典读物。
HN 评论精选
批评作者自己都不理解所写的配置,这类“巫术式”教程会以讹传讹、污染搜索结果。
很多这类技术博客帖子本质上都是“巫术”:作者写出一堆你应该照做的指令,自己却并不理解它们。比如作者说“我不完全确定 filetype 那几行是干什么的,我读到说它们是必需的,目前也没出问题”,而他的 .vimrc 里 filetype 还重复列了两次。这种不求甚解的教程正是网上大量互相抄袭的错误指南泛滥的原因。如果你懒得做研究、向读者解释为什么和具体在做什么,就别写技术指南!
merijnv查看英文原文
What annoys me about a lot of tech blog posts like this one is that they're essentially voodoo. People like the author write instructions about what you should do without even understanding the instructions themselves. "I’m not entirely sure what the filetype lines do. I’ve read that they’re necessary and so far I haven’t had problems." His example .vimrc has filetype listed twice, which is redundant. This in itself isn't a big deal, but the problem these lines illustrate is. Sentences like these are the reason for billions of blog posts about setting up an OpenSSL certificate authority all repeating the same example which the documentation explicitly mentions is the wrong way of doing things. In fact I find that these voodoo instructions often crowd out any actual proper tech guides in the search results, all for the sake of drawing traffic to some blog... Don't write tech guides if you can't be bothered to do the research and explain to your readers why they should do what you do and what exactly they're doing!
分享自己的 .vimrc 和学习 Vim 技巧的资源渠道。
我喜欢 Vim 的一点是,每次读这类文章或看别人的 .vimrc,我都能学到它的新用法,或获得让工作更轻松的新思路。我的(半注释).vimrc 在 GitHub 上,另外 StackOverflow 上按票数排序的 vim 标签问题也是很好的小技巧来源。
samdk查看英文原文
One of the things I love about Vim is that every time I read though a post like this or look at someone's .vimrc I learn something new about what it can do or get another insight about how its features can make my life easier. My (semi-commented) .vimrc is on GitHub if anyone wants another example: http://github.com/samdk/vimconf/blob/master/dotvimrc I've also found StackOverflow's list of most-voted questions tagged vim to be a very useful source of little tidbits: http://stackoverflow.com/questions/tagged/vim?sort=votes&pagesize=15 And there've been several HN .vimrc posts that I also found very useful. This is one of the best: http://news.ycombinator.com/item?id=856051 This is another excellently commented and extensive .vimrc that (I think) is mentioned in one of the above links, but deserves its own specific mention here: http://www.vi-improved.org/vimrc.php And this is another I found completely by accident a while ago that includes some excellent examples of vimscript macros: http://fingelrest.silent-blade.org/uploads/Main/vimrc.html
指出文中几个配置问题有更简单、更正确的现成方案。
关于搜索高亮::nohlsearch 可以清除高亮,不会修改搜索历史,也不会禁用高亮搜索,下次搜索仍会高亮匹配。另外文中那段排序映射,为什么不直接用 ViB:sort 呢?关于缩进,用 set autoindent nosmartindent nocindent 即可实现“回车时保持当前缩进”。
CGamesPlay查看英文原文
>Some people use a mapping that turns search highlighting off and on, but I don’t like that solution. It means I have to remember to turn it back on later once I’ve probably already forgotten about the original search. :nohlsearch removes highlighting, doesn't modify search history, and also doesn't disable highlighted search. It will still highlight matches for the next search. > nnoremap <leader>S ?{<CR>jV/^\s*\}?$<CR>k:sort<CR>:let @/=''<CR> I'm curious why not just use `ViB:sort`? > When I press return, create a new line at the same indentation level as the current one. Don’t try to be clever and adjust the indent of new line in any fashion. set autoindent nosmartindent nocindent Wrap it in a filetype line if you like.
“命令即句子”的心智模型大大降低了学 Vim 的心理门槛。
把 Vim 命令看作由名词、动词和形容词组成的句子,这一点让我大开眼界。我本来想学 Vim,但不知道这个,所以 Vim 命令对我来说像一门需要几个月才能慢慢熟练的神秘语言——这个视角可能会让过渡容易得多。
zaptheimpaler查看英文原文
Wow, the bit about seeing vim commands as sentences composed of nouns, verbs and adjectives blew my mind. I thought about learning vim, but I didn't know about this, so vim commands seemed like some arcane language that I would have to gradually get proficient at over months.. this might make the transition a lot easier.
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选