Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

永遠の Vim 初級者の、Vim の使い方

$
0
0

イントロダクション

どうも、毎年ゆるふわな記事を Vim Advent Calendar に投稿させていただいている、永遠の初級者 Vim ユーザーです。

2016 年 : e が押せないのは誰のせい?
2017 年 : こんな私でも Vim が好きと言いたい

今年は、そんなライトな Vim ユーザーは Vim をどうやって使っているか、どんな機能を使っているか(どんな機能を使っていないか)を雑にお伝えしたいと思います。

狙い

Vim 入門者の方には Vim 入門として若干お役に立つかもしれませんが、個々の機能を詳しく解説しているわけではないのでそうでもありません。
Vim 上級者の方には、初級者のつまづきポイントがわかって普及や教育の参考になるかもしれません。知らんけど。

よく使うもの

基本的なやつ

b, c, d, f, g, h, i, j, k, l, n, p, q, r, u, v, w, x, y
0, $, ~, %, /, *, @

各々のコマンドについて細かく見ていこうと思っていたんですけど1、きりがないことに気づいてやめました。

コマンド類

保存・終了

:q, :q!, :w, :w filename, :wq, :e filename

他にも ZZとか :xとかいろいろあるらしいですが、私は全く使いません。いろいろ調べてそういう結論になったはず。

その他

set pasteとか vimgrepとかはたまに使っているような気がします。他にもあるかもしれませんが、ちょっとすぐには思い出せないです。履歴も確認しましたけどほとんど wehelpで埋め尽くされていました。って、help使ってるやん。

テキストオブジェクト

これは使わないと、何のために Vim 使ってるんだって話になるくらい重要な機能だと個人的には思います。
テキストオブジェクトを初めて知ったときのあの感動は忘れられないです。

バッファ

一度終了してから別のファイルを開き直したり、(Vim のウィンドウじゃなくて物理的?な)ウィンドウやコンソールを何枚も開けたりするがバカバカしくなってきたとき、人は自然とバッファにたどり着くんじゃないでしょうか。

ウィンドウ

複数のファイルを並べて見たいけど、(Vim のウィンドウじゃなくて物理的?な)ウィンドウやコンソールを何枚も開けたりするがバカバカしくなってきたとき、人は自然とウィンドウにたどり着くんじゃないでしょうか。

モードライン

常用しているというわけではないし、実際それほど使いどころもないですが、特定の場面では重宝しています。

使わない(使えない)もの

基本的なやつ

e, m, o, s, t, z
^, ., ?

e2年前に記事にしたとおり使えていません。
osも使えていないです。A[Enter]とかが手癖になっているっぽい。
^は(この記事を書き出すまでは) 0と同じだと思っていたのですが、^のヘルプを見ると

To the first non-blank character of the line.

^は行頭ではなく、その行の最初の非空白文字に移動するのですね・・・。
これは明日からチャレンジしてみよう。

t, m, zは未だに何者なのかよく分かっていません。って、mって mark なのか。私、メモをとったこと自体を忘れるが故にメモを取らないタイプの人間なので、マーク使わない(使えない)んですよねぇ。

コマンド実行

:!なのですが、なんと私、これが使えないんですよ。何かコマンドを実行したくなったときは Ctrl+zで抜けるか、tmux などでコンソールを分割しています。
エディタに実行結果が出るのがなぜか好きではないのですよね。(便利なこともあるとは分かっていても。)IDE を使うときでも、IDE 付属のコンソールは全く使いませんし・・・。

タブ

バッファやウィンドウは使っていても、タブは使えません。そもそもまだ概念を理解できていないです。

プラグインとか

全く使っていません。去年の記事参照。

まとめ

結局、文字が快適に入力できればそれでいいっていう感じなんだと思います。私の場合。


  1. 例えば gggGはよく使ってるけどそれ以外は多分使ってないとか。 


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>