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
たとえば、最初のセクションのすべての行のコメントを解除したいとしますdef ... end
。Vim でこれを効率的に行う方法は何でしょうか?
一般的に、私は行をコメント化したりコメント解除したりするための簡単で流動的な方法を探しています。ここでは Ruby コードを扱っていますが、JavaScript ( //
) や Haml ( -#
) でもかまいません。
ベストアンサー1
私が最もよく使うタスクにはブロック選択。
最初の文字にカーソルを置き#
、CtrlV(またはCtrlQgVim の場合は ) を押して、最後のコメント行まで下に移動して を押すとx、すべての文字が垂直に削除されます#
。
テキストブロックにコメントする場合もほぼ同じです。
- まず、コメントしたい最初の行に移動して、 を押しますCtrlV。これにより、エディターが
VISUAL BLOCK
モードになります。 - 次に矢印キーを使って最後の行まで選択します
- 次に を押してShiftI、エディターを
INSERT
モードにして を押します#。これにより、最初の行にハッシュが追加されます。 - 次に、(1 秒ほど待って)押すとEsc、
#
選択した他のすべての行に文字が挿入されます。
debian/ubuntu にデフォルトで同梱されている vim の簡易バージョンの場合は、: s/^/#
代わりに 3 番目の手順を入力します (各行の最初の文字の残りのハイライトは で削除できます:nohl
)。
視覚的な参考のために、2 つの小さな画面録画を示します。