質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • Vim

    517questions

    VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

.vimrcでおすすめの設定教えてください!

受付中

回答 9

投稿

  • 評価
  • クリップ 12
  • VIEW 5,834

kuwako

score 365

.vimrcでみなさんのおすすめ設定教えてください。
最近僕が追加してお気に入りなのは、

" 挿入モードでのカーソル移動
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-b> <Left>
inoremap <C-f> <Right>

inoremap <silent> <C-a> <Esc>^<Insert>
inoremap <silent> <C-e> <Esc>$<Insert><Right>
inoremap <silent> <C-l> <Esc>$<Insert><Right> ;<Left><BS><Right> 
この辺りです。
挿入モードでの移動4つと挿入モード中にCtrl+aで先頭に移動、Ctrl+eで行末移動、Ctrl+lで行末に;をつけます。

他に何かおすすめあったら教えてください!
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2017/07/17 21:17

    複数のユーザーから「問題・課題が含まれていない質問」という意見がありました
    teratailでは、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
    「編集」ボタンから編集を行い、質問の意図や解決したい課題を明確に記述していただくと回答が得られやすくなります。

回答 9

+6

シンプルですが、とりあえずコレが書かれていなかったら追記しますね。
"構文ハイライト
syntax on
"背景色黒
highlight Normal ctermbg=black ctermfg=grey
"アンダーライン設定
set cursorline
"マウス操作有効
set mouse=a

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+4

プログラムを書いている時に、この辺りは便利だと思いました。
(既に挙げられているのは省きます)
"行番号表示
set number
"tab幅の指定
set tabstop=4
"検索時などに大文字小文字無視
set ignorecase
"検索時などに大文字ではじめたら大文字小文字無視しない
set smartcase
"検索文字をハイライト
set hlsearch

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

ペーストモードの自動解除が結構気に入ってます。クリップボードからSHIFT+Insertで貼付ける事はよくやるんですが、同じ文字列を2回以上貼る時はヤンクするので、クリップボードから2回貼るという事は基本的に無いです。
あと、jjでインサートモードから抜けるキーバインドを仕込んで長いので、これが無い環境ではinoremap叩いてます。
augroup my_au
au InsertLeave * execute "set nopaste"
augroup END

inoremap jj <Esc>
inoremap JJ <Esc>

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

Macのターミナル(iTerm2)でVimを使っているのですが、Vim歴が浅いのでVimmerの方々には当たり前すぎる設定かも知れません。

F1でヘルプが表示されるのがうっとおしかったので
" F1でヘルプ開くのを無効化
nmap <F1> <nop>
imap <F1> <nop>
で無効化してます。

あとは、ビジュアルモードで選択してペーストした時に、ペースト前の文字列がヤンクされた状態になって連続でペースト出来ないのが苦痛だったので
nnoremap <silent> <C-p> p
vnoremap <silent> <C-p> p
nnoremap <silent> p "0p
vnoremap <silent> p "0p
として、pで同じ文字列を連続コピペ出来るようにしています。
標準のペーストはCtrl + pで出来るので使い分けが便利です。

他には、プロジェクト固有の設定の読み込みを以下のように実現しています。
"---------------------------------------------------------------------------
" local設定読み込み
"   ディレクトリ単位で固有の設定を持つ場合、
"   そのディレクトリに.vimprojectsファイルを設定し、
"   そこに固有の設定を記載する
"---------------------------------------------------------------------------
augroup vimrc-local
  autocmd!
  autocmd BufNewFile,BufReadPost * call s:vimrc_local(expand('<afile>:p:h'))
  autocmd BufReadPre .vimprojects set ft=vim
augroup END
function! s:vimrc_local(loc)
  let files = findfile('.vimprojects', escape(a:loc, ' ') . ';', -1)
  for i in reverse(filter(files, 'filereadable(v:val)'))
    source `=i`
  endfor
endfunction
これで、プロジェクトのルートディレクトリに.vimprojectsというファイルを作成し、そこにプロジェクト固有の設定を書いておくことで、.vimrcを汚すこと無く設定が追加出来ます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

window/tab操作系は短いkeymapを設定すると捗ります。

マクロの実行(@aとか)を1キーで押せるように設定すると
連打したりとか押しっぱなしにできていいです。

" windowの移動
nnoremap sh <C-w>h
nnoremap sj <C-w>j
nnoremap sk <C-w>k
nnoremap sl <C-w>l

" tabの移動
nnoremap s] gt
nnoremap s[ gT

" マクロを1キーで実行できるようにする
nnoremap ` @q

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ちょっと趣旨は違うかもしれませんが、カラースキーマの設定です。
特にhybridは目に優しくてお気に入りです。

" screenを256色とする
set t_Co=256
" カラースキーマにhybridを設定
colorscheme hybrid

hybridはこちらにあります。
https://github.com/w0ng/vim-hybrid

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

シンプルですが jj でエスケープする設定が
連打したままそのまま下に移動もできたりとかなり便利です。

inoremap <silent> jj <esc>

ただ j を入力した後に次のキーの入力待ちが発生するので
jを入力する機会が多いと辛いかもしれません。

また下記にペーストなどの基本的なコマンドの便利なエイリアスまとめているので
興味があれば参考にしてください ^^

https://github.com/yamagen0915/dotfiles/blob/master/vim/vimrc.keymap

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

繰返しを多用しますが、.に指を動かすのがしんどいので。
スペース2回で繰返しとしてから心なしか薬指の負担が減りました。

"スペース2回で繰り返し
noremap <Space><Space> .

後は検索結果をに中央に表示や

" 検索次へ/前へ
map n nzz
map N Nzz

基本的な改行防止などです。

"自動改行防止
:set tw=0

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

コマンドラインをよく使うのであれば,以下の設定がおすすめです。(Emacs like ですが...)
特に,<C-p><C-n> はコマンドラインの履歴を追えるので,なかなか気に入ってます。

cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
cnoremap <C-b> <Left>
cnoremap <C-f> <Right>
cnoremap <C-a> <Home>
cnoremap <C-d> <Del>

後は,leader を <space> に,localleader をデフォルトの leader である \ にする設定ですかね。
使用頻度の高いプラグインは leader を,そうでもないものは localleader を prefix key にするとコーディングが捗ります。

noremap <Space> <Nop>
let g:mapleader = "\<Space>"
let g:maplocalleader = "\\"

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

同じタグがついた質問を見る

  • Vim

    517questions

    VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

関連ワード: vimrc おすすめ