我在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
假设我想取消注释第一个定义中的所有行。。。端部。在Vim中有什么有效的方法可以做到这一点?
总的来说,我正在寻找一种简单、流畅的方式来注释和取消注释行。这里我处理的是Ruby代码,但可能是JavaScript(//)或Haml(-#)。
"comment (cc) and uncomment (cu) code
noremap <silent> cc :s,^\(\s*\)[^# \t]\@=,\1# ,e<CR>:nohls<CR>zvj
noremap <silent> cu :s,^\(\s*\)# \s\@!,\1,e<CR>:nohls<CR>zvj
可以使用#注释/取消注释单行或多行。要执行多行操作,请选择行,然后键入cc/cu快捷方式,或键入数字,然后键入cc/cu,例如7cc将注释光标中的7行。
我从Vim中注释/取消注释ruby代码块的最优雅方式是什么?并进行了一些小的更改(更改了快捷键,并在#后面添加了空格)。
我喜欢简短的、综合的、令人难忘的方法,不依赖于外部脚本——一种花哨的小题大做。。。
TLDR:按gI(大写i)将光标置于插入模式下的行首(无论是空格还是非空格字符,并防止自动缩进)
使用此选项可快速注释(例如)非连续行,注释符号(例如#或//)为第一个字符,不带缩进,方法是按。(点)-->,但如果仍有自动缩进机制,则在插入模式下按和以更正缩进,操作后退出到正常模式。现在可用于注释行。。。
长:我现在(几年后)意识到,按gI(大写I)会将光标置于插入模式下的第1列(意思是:无论是单词还是非单词字符,都在行的开头)。
插入注释符号(如#)并按escape-现在可以在只按的同时注释单个非连续行(注释符号作为第一个字符,没有缩进)。(点)。
与按0i或仅按I相反,它将注释符号放在第一个单词字符处,部分还带有不需要的缩进