我听过很多关于Vim的消息,包括优点和缺点.看起来你应该(作为开发人员)使用Vim比使用任何其他编辑器更快.我正在使用Vim来做一些基本的东西,而且我最好用Vim的效率低 10倍.
当你谈论速度时你应该关心的两件事(你可能不太关心它们,但你应该这么做)是:
这里有两个例子,说明为什么我对Vim的效率低得多.
复制/剪切和粘贴.我一直这样做.使用所有当代编辑器,您可以Shift 用左手按下,然后用右手移动光标以选择文本.然后Ctrl+ C副本,你移动光标和Ctrl+ V贴.
有了Vim,它太可怕了:
yy 复制一行(你几乎不想要整行!)[number xx]yy将xx行复制到缓冲区中.但你永远不知道你是否选择了你想要的东西.我经常做的[number xx]dd,然后u撤消!另一个例子?搜索和替换.
/,然后键入要搜索的内容,然后如果\在每个特殊字符前放置了一些特殊字符,则按Enter.与Vim的一切都是这样的:似乎我不知道如何以正确的方式处理它.
我的问题是:
你使用Vim的方式是什么让你比现代编辑更有效率?
我正在努力学习Vim.
当我从剪贴板将代码粘贴到我的文档中时,我会在每个新行的开头添加额外的空格:
line
line
line
Run Code Online (Sandbox Code Playgroud)
我知道你可以关闭自动缩进但我无法让它工作,因为我有一些其他设置冲突或某事(在我的.vimrc中看起来非常明显,但是当我把它们取出时似乎并不重要).
当我粘贴代码时如何关闭自动缩进但在编写代码时仍然有自动缩进?这是我的.vimrc档案:
set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent
set bg=dark
set nowrap
Run Code Online (Sandbox Code Playgroud) 我在vi中打开了一个Ruby代码文件,有一些注释掉的行#:
class Search < ActiveRecord::Migration
def self.up
# create_table :searches do |t|
# t.integer :user_id
# t.string :name
# t.string :all_of
# t.string :any_of
# t.string :none_of
# t.string :exact_phrase
#
# t.timestamps
# end
end
def self.down
# drop_table :searches
end
end
Run Code Online (Sandbox Code Playgroud)
假设我想取消注释第一def ... end部分中的所有行.在Vim中这样做的有效方法是什么?
一般来说,我正在寻找一种简单流畅的方式来评论和取消注释.在这里,我正在处理Ruby代码,但它可能是JavaScript(//)或Haml(-#).
我已经开始使用Vim开发Perl脚本,并开始发现它非常强大.
我喜欢的一件事是能够一次打开多个文件,vi main.pl maintenance.pl然后在它们之间跳转:
:n
:prev
Run Code Online (Sandbox Code Playgroud)
并查看打开的文件
:args
Run Code Online (Sandbox Code Playgroud)
要添加文件,我可以说:
:n test.pl
Run Code Online (Sandbox Code Playgroud)
我希望将其添加到我的文件列表中,但它会清除我当前的文件列表,当我输入时:args我只test.pl打开了.
那么我怎样才能将文件添加到我的args列表中并将其删除?
Vim中的remap,noremap,nnoremap和vnoremap映射命令有什么区别?
我<leader>在许多.vimrc文件中看到,我想知道它是什么意思?它是干什么用的?只是对目的和用法的一般概述将是伟大的.
我只知道一个使用寄存器的实例是via CtrlR*,我从剪贴板粘贴文本.
寄存器的其他用途是什么?怎么用?
关于VI寄存器的所有知识(让我们关注vi 7.2) - 与我们分享.
有很多问题让人们谈论常见的技巧,特别是" Vim + ctags提示和技巧 ".
但是,我没有提到Vim的新手会觉得很酷的常用快捷方式.我说的是一个经验丰富的Unix用户(他们是开发人员,管理员,两者等),他们认为他们知道我们99%的人从未听过或梦到过的东西.有些东西不仅让他们的工作变得更轻松,而且还很酷,而且很酷.毕竟,Vim居住在世界上最黑暗角落最丰富的操作系统中,因此它应该只有少数特权知道并希望与我们分享的错综复杂.
vim ×10
vi ×5
editor ×2
auto-indent ×1
command ×1
comments ×1
indentation ×1
macvim ×1
mapping ×1
unix ×1