大幅な改稿を予定
先にキーリピートを最速にしておくのがオススメです(OSの設定)。追記予定。
Spacemacsのことは考慮しません。
入門法
$ vimtutor
($ vimtutor jp
)
「20~30分で終わる」チュートリアルです。
mobaは途中で止めてしまいました
:help
(Vimの中で)
キー操作や用語解説などが見られます。
チートシート
を印刷したり、自作するのが効率的だと思います。
Vim入門 #3
執筆中です。操作法のリファレンスになる予定です。
本(紙媒体)
買っておくと、時間的に得をします。
実践Vim 思考のスピードで編集しよう!
一通り操作に慣れたら、この本によって更なる改善を見込めます。入門者が読むにはハードルが高いと思います。
序章でリピートキー.;n@
を導入し、次章からvimゴルフが始まります。
読み物(web)
一応リンクを貼りましたが、Vimをプログラミングに使わないなら、必要な知識はぐっと減ります。キー操作を覚えるだけでも十分かもしれません。特にGVimを使うなら、タブ関連の操作すら、ブラウザと同じにできます。
Vim のすゝめ - SOUM/misc
サクッと読めます。良文でした。
Vim-Galore : Vimについて知っておくべき全てのこと (1~5)
翻訳記事です。視野を広げるのにいいかもしれません。URLの番号を1~5に変えることで、シリーズの他の記事に移動できます。
Vimの生産性を高める12の方法
翻訳記事です。良いキーマップの例が少しだけ載っています。
.vimrcの設定
執筆中です。ページを分ける?
.vimrcの役割
Vimの起動時に実行されるコマンド(run commands)の集まりです。Vim Scriptで記述されます。
Exコマンド:command
Vimの中で: command
として実行されるものです。Vim Scriptは、先頭の:
を省略したコマンドの集まりと言えます。
歴史的には、Vimよりも前に、Exというエディタがありました。
.vimrcの位置
~/.vimrc
~/.vim/.vimrc
ファイル分け
GitHubとの連携
Vim Script の基本
%
は現ファイル。
基本的な設定
やはり記事を分ける?
日本語入力のための設定
文字数カウントを常駐表示(ステータスライン)
試していないのでアレですが、set statusline='%{wordcount().chars}'
で表示できると思います。
g<C-g>
や:! wc -m %
からも確認できます。キーマッピングを作っても良いでしょう。
プラグインの項では、airlineというリッチなステータスラインに常駐表示させています。
normalモードに戻った時の全角/半角の扱い
強制的に半角
他のモードでは全角/半角状態を維持
テキストブロックを設定
スクロールなど
タイプライタースクロール(自動半画面スクロール)
フォーカスモード(現段落以外を暗くする)
余白行
検索結果を画面中央に表示(上端ではなく)
wikiを参照。
不可視記号の可視化
半角記号
全角スペース
マッピング(キーバインディング)
設定の確認
:map
で一覧が出ます。:help ^a
でCTRL-aの操作が出ます。
既存のマッピングと被ると、意図しない動作が発生するので気をつけます。
設定法
詳しい話は:help map-overview
から。
キーの表記
同時押しは山括弧<>
で表現します。例: Ctrl+Shift+aは<C-S-a>
。
Leader
キーマッピングに使用できる変数です。デフォルトでは\
になっていますが、mobaはSpaceキーにしています。
let mapleader=' ' " 以後のマッピングで、<Leader>はスペースキーを表す
キーマッピングを変えたくなったとき、Leaderの値を変えれば、操作がまとまって変わるというわけです。普通にSpaceキー(<Space>
)を使ったマッピング書いても構いません。
nnoremap (LHS) (RHS)
一連のキーストローク (LHS) を別のキーストローク (RHS) に翻訳してくれます。
LHS: left hand side; 左辺 RHS: right hand side; 右辺
xmapのxは、どのモードで働くかを表します(x = n: normal, v: visual, ..)。mapは一度マッピングしたら修理しますが、noremapはマッピングの入れ個を許します。
設定例
.vimrcに以下のように書いています。何かのプラグインと衝突すると思うので、自分で設定した方がいいです。
ハイライトの切り替えは、この回答をコピーしました。
" ############### MAPPING ############### let mapleader=' ' " .vimrcの編集用 nnoremap <leader>v :tabnew ~/.vimrc<CR> nnoremap <leader>s :source ~/.vimrc<CR> " ハイライトの切り替え :nnoremap <silent><expr> <Leader>h (&hls && v:hlsearch ? ':nohls' : ':set hls')."\n" " プラグインの設定 let g:NERDTreeWinPos = 'right' " エクスプローラを右側に表示(お好みで) " プラグインの呼び出し " vnoremapだとNeovimでは動かない(なぜ? 要改稿) vmap v <Plug>(expand_region_expand) vmap <C-v> <Plug>(expand_region_shrink) nnoremap <leader>t :NERDTreeToggle<CR> nnoremap <leader>g :Goyo<CR> nnoremap <leader>w f。 nnoremap <leader>b F。 nnoremap <leader><C-w> f、 nnoremap <leader><C-b> F、
句読点へのジャンプには、マシなマッピング法があるはずです。要改稿。
normalモードに戻ったら半角入力にする
調査中です。もしくは全角入力でも操作できるようにする?
プラグイン
ユーザが書いた拡張を導入します。
マネジャ
プラグイン管理を便利にしてくれる拡張を使います。種類は色々ありますが、多過ぎるので一つに絞って紹介します。
vim-plug
最も簡単なプラグインマネジャです。リンク先の指示に従ってダウンロード後、.vimrcにcallコマンドを書きます。
" ############### Plugin ################# call plug#begin('~/.vim/plugged') " vim-plug " ここでプラグインをインストールする。書式は、 " Plug 'GitHub-user-account/repository-name' call plug#end
Vimの中で :PlugInstall とすれば、Plug
宣言したプラグインのインストールが始まります。(必要ならば、その前に:source ~/.vimrc
を忘れずに)
おすすめプラグイン
call plug#begin('~/.vim/plugged') " vim-plug Plug 'scrooloose/nerdtree' Plug 'junegunn/goyo.vim' Plug 'terryma/vim-expand-region' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' call plug#end
NERDTree
擬似エクスプローラです。画面分割したウィンドウで開かれます。ウィンドウの切り替えは、主に<C-w>w
。
" NERDTree(詳しくは:help NERDTree) let g:NERDTreeWinPos = 'right' let g:NERDTreeNaturalSort=1 "let g:NERDTreeWinSize=30 " let g:NERDTreeShowLineNumbers=1
Goyo
執筆モードを生み出すプラグインです。主に、ウィンドウに余白を作ります。
現在のウィンドウをフル画面表示するコマンドだと思えば、NERDTreeの閲覧にも有用です。
行あたり文字数を設定する
調査中です。
ウィンドウのリサイズに対応する
調査中です。ショートカット?
行数やステータスラインを表示する
調査中です。
expand-region
visualモードの選択範囲を、段階的に増やすか減らす操作を追加してくれます。
全角括弧()や句点。を範囲に入れる方法
調査中です。
airline
ステータスバーとタブバーを、機能的かつ美しくするプラグインです。マニュアルはこちら、もしくはダウンロード後に:help airline
。helpを読むのに、早速goyaプラグインが役立つかもしれません。
改稿