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

VIMのコメントの色の変更

$
0
0

vimのコメントの色が見づらくて変更したいと思ったので、やり方をまとめてみました。ctermfgに整数を設定してあげる方法もありますが、それだと何色なのかいまいちわかりづらいと思ったので、色の名前で設定する方法を私のブログにまとめてみたので、よかったら読んでみてください!↓
http://infotech776.blog.fc2.com/blog-entry-54.html


Vimでプロジェクト固有の設定を適用する

$
0
0

基本の設定でははインデントはスペース2つ。
けど、プロジェクトAではインデントをハードタブにしたい。

といった時にプロジェクト固有のVimの設定ができると便利。
もちろんできます。

.vimrc

まずは.vimrcにそれを実現する設定を記述

~/.vimrc
augroup vimrc-local
  autocmd!
  autocmd BufNewFile,BufReadPost * call s:vimrc_local(expand('<afile>:p:h'))
augroup END

function! s:vimrc_local(loc)
  let files = findfile('.vimrc.local', escape(a:loc, ' ') . ';', -1)
  for i in reverse(filter(files, 'filereadable(v:val)'))
    source `=i`
  endfor
endfunction

これで、.vimrc.localというファイルがあると、それを読み込んでくれるようになる。

.vimrc.local

あとは、下のようにプロジェクト固有の設定ファイルをつくってやればいい。

path_to_project/.vimrc.local
set noexpandtab
set tabstop=4
set shiftwidth=4

ついでに

.vimcrc.localをバージョン管理から除く

~/.gitconfig
[core]excludesfile=~/.gitignore
~/.gitignore
.vimrc.local

Terminal のビープ音がうざいので全カット (仮)

$
0
0

試行錯誤中のメモ。


Vagrant ssh とかやった時、ことあるごとにビープ音が出てうざかったので対応。

bash

.inputrc
set bell-style none

シェルに再ログインが必要かも

vim

.vimrc
set visualbell

vimのGoサポートが手厚くて打ち震えている

$
0
0

はじめに

タイトルの通りvimで作るGoの開発環境が便利なのでまとめたものです。
特にコードリーディングに便利な設定を紹介します。

参考

本稿を書くに当たって参考になった記事です。
日付が新しい順に並べていますので下の方は古い記述を含んでいます。

Go 1.2.1 の環境構築 Homebrew + Vim 編 (2014.03)
http://qiita.com/methane/items/4905f40e4772afec3e60

Big Sky :: Vimを使ったGo言語開発手法
http://mattn.kaoriya.net/software/vim/20130531000559.htm

goのvimコマンド「Fmt」が、実はquickfixに登録してくれてて最高だった
http://qiita.com/umisama/items/2e38139e0d3f4410446e

Go用のvim設定
http://qiita.com/hnakamur/items/f39fde28bcfe4beaaaba

Vim for Golang
http://www.metal3d.org/ticket/2013/07/07/vim-for-golang

Goの開発環境(Vim + Vundle編)
http://qiita.com/todogzm/items/3c281da10287f7383487

Go言語の初心者が見ると幸せになれる場所
http://qiita.com/tenntenn/items/0e33a4959250d1a55045

VimでGoのコードを書くときにやっておきたいこと
http://qiita.com/methane/items/d82b9f28b97b5c3bd08a

VimFiler で NERDTree のような Explorer を快適に実現する方法
http://hrsh7th.hatenablog.com/entry/20120229/1330525683

できるようになること

VimFiler + Tagbar でIDEのような一覧性

VimFilerで後述する:VimFilerTreeコマンドとTagBarプラグインで:Tagbarコマンドを実行したものです。
ツリー表示の定番はNERDTreeですが個人的な好みでVimFilerを使っています。
それぞれファイル名や関数名にカーソルを合わせてEnterを押すとジャンプします。

VimFilerTree + Tagbar
画像だけを表示

時にはUnite-outlineも使いたい

:Unite outlineでアウトライン表示もできます。

Unite-outline
画像だけを表示

gdで定義にジャンプ

下のウインドウの15行目のNewAnsiColorWriterにカーソルを合わせてgdを入力したものです。
画面分割されて上のウインドウにその定義があるファイルを開いています。

Goto Declaration
画像だけを表示

:Godocでドキュメント表示

下のウインドウの17行目のfmt.Printlnにカーソルを合わせて:Godocコマンドを実行したものです。
画面分割されて上のウインドウにGodocを開いています。

Godoc
画像だけを表示

環境構築

環境変数

macでhomebrewの場合

export GOROOT=/usr/local/opt/go/libexec
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

windowsの場合

GOROOT=C:\go
GOPATH=%USERPROFILE%\go
PATH=%GOPATH%\bin;%GOROOT%\bin;%PATH%

ツール

$GOPATH/binにコマンドがインストールされます。

go get code.google.com/p/go.tools/cmd/goimports
go get code.google.com/p/go.tools/cmd/godoc
go get code.google.com/p/go.tools/cmd/vet
go get code.google.com/p/go.tools/cmd/cover
go get github.com/nsf/gocode
go get github.com/golang/lint
go get code.google.com/p/rog-go/exp/cmd/godef
go get github.com/jstemmer/gotags

vimrc

各種vimプラグイン、Goの設定、VimFilerでツリー表示するための設定です。

~/.vimrc
" for Neobundle {{{if has('win32')lets:vim_home=expand('~/vimfiles')elselets:vim_home=expand('~/.vim')endifif has('vim_starting')let&runtimepath.=printf(',%s/bundle/neobundle.vim',s:vim_home)endifsetnocompatiblecall neobundle#rc(expand(s:vim_home.'/bundle'))

NeoBundleFetch 'Shougo/neobundle.vim'
NeoBundle 'majutsushi/tagbar'
NeoBundle 'Shougo/vimfiler'
NeoBundle 'Shougo/vimproc'
NeoBundle 'Shougo/unite.vim'
NeoBundle 'h1mesuke/unite-outline'
NeoBundle 'soh335/unite-outline-go'
NeoBundle 'dgryski/vim-godef'setrtp^=$GOROOT/misc/vimsetrtp^=$GOPATH/src/github.com/nsf/gocode/vimfiletype plugin indent onsyntaxon
NeoBundleCheck
" }}}" for golang {{{setpath+=$GOPATH/src
letg:gofmt_command ='goimports'auBufWritePre *.go Fmt
auBufNewFile,BufRead *.gosetsw=4noexpandtabts=4completeopt=menu,preview
auFileTypegocompilergo" }}}" VimFilerTree {{{
command! VimFilerTree call VimFilerTree()function VimFilerTree()
    exec ':VimFiler -buffer-name=explorer -split -simple -winwidth=45 -toggle -no-quit'wincmdtsetlwinfixwidthendfunction
autocmd!FileType vimfiler callg:my_vimfiler_settings()function!g:my_vimfiler_settings()
    nmap     <buffer><expr><CR> vimfiler#smart_cursor_map("\<Plug>(vimfiler_expand_tree)","\<Plug>(vimfiler_edit_file)")nnoremap<buffer>s          :call vimfiler#mappings#do_action('my_split')<CR>nnoremap<buffer>v          :call vimfiler#mappings#do_action('my_vsplit')<CR>endfunctionlet my_action = {'is_selectable' : 1}
function! my_action.func(candidates)wincmdp
    exec 'split '. a:candidates[0].action__path
endfunctioncall unite#custom_action('file','my_split', my_action)let my_action = {'is_selectable' : 1}
function! my_action.func(candidates)wincmdp
    exec 'vsplit '. a:candidates[0].action__path
endfunctioncall unite#custom_action('file','my_vsplit', my_action)" }}}
~/.vim/ftplugin/go.vim
" gotags {{{letg:tagbar_type_go = {
    \ 'ctagstype' : 'go',
    \ 'kinds'     : [
        \ 'p:package',
        \ 'i:imports:1',
        \ 'c:constants',
        \ 'v:variables',
        \ 't:types',
        \ 'n:interfaces',
        \ 'w:fields',
        \ 'e:embedded',
        \ 'm:methods',
        \ 'r:constructor',
        \ 'f:functions'
    \ ],
    \ 'sro' : '.',
    \ 'kind2scope' : {
        \ 't' : 'ctype',
        \ 'n' : 'ntype'
    \ },
    \ 'scope2kind' : {
        \ 'ctype' : 't',
        \ 'ntype' : 'n'
    \ },
    \ 'ctagsbin'  : 'gotags',
    \ 'ctagsargs' : '-sort -silent'
\ }
" }}}

vim with vundle (vim plugin manager)

$
0
0

a little code that I saw long time ago

put it in your .vimrc

then vundle (vim plugin manager) will automatic install if you have git

then your can happly use vundle to mange your vim plugin :)

vundle support three source :

  • vim-scripts repos
  • original repos on github
  • non github repos
let iCanHazVundle=1let vundle_readme=expand('~/.vim/bundle/vundle/README.md')if!filereadable(vundle_readme)
    echo "Installing Vundle.."
    echo ""silent!mkdir-p~/.vim/bundle
    silent!git clone https://github.com/gmarik/vundle ~/.vim/bundle/vundle
    let iCanHazVundle=0endifsetrtp+=~/.vim/bundle/vundle/call vundle#rc()" let Vundle manage Vundle
Bundle 'gmarik/vundle'

Vimで括弧の補完→改行してインデント

$
0
0

Vimで閉じ括弧補完といえば inoremap { {}<Left>のようにやると思うけど、

俺は 某崇高なテキストエディタのような括弧補完がやりたいんだ!

というわけで、以下を .vimrcに書けばOK

.vimrc
inoremap {<Enter> {}<Left><CR><ESC><S-o>inoremap [<Enter> []<Left><CR><ESC><S-o>inoremap(<Enter>()<Left><CR><ESC><S-o>

これで、

<?phpfunctiontest()<カーソル>

<カーソル>位置で { + Enterを押せば

<?phpfunctiontest(){<カーソル位置>}

となる。
1年ほどSublimeに浮気して戻って来たけどやっぱVimたんかあいいよ(最低)

Linux新規インストール時メモ

$
0
0

はじめに

自分用の簡易サーバ立ち上げメモ。
Railsで遊んだり、身内向けサービス公開するための環境構築が目標。

sshログインユーザの制限とか公開鍵認証とかの設定はしない。
記憶を頼りに書いてるんで怪しいところがあるかも。
Zshもよくわからないから入れない。

基本設定

とりあえずsudoできるようにしとく。

su
visudo

して

ユーザ名  ALL=(ALL) ALL

を追加。
次に、SSHが22番のままはまずいんで変更

vi /etc/ssh/sshd_config
/etc/ssh/sshd_config
Port3843

新しいポートでのアクセスを許可
:/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3843 -j ACCEPT

いろいろrestartする。

sudo /etc/init.d/sshd restart
sudo /etc/init.d/iptables restart

現在の接続そのままにして、新しい接続でつながるか試す。
つながらなかったら全力で頑張る。
つながったらiptablesから22番削除。

とりあえず必要そうな環境構築

sudo yum update
sudo yum install perl perl-devel
sudo yum install php php-devel php-mbstring
sudo yum install git
sudo yum install make gcc 
sudo yum install zlib-devel openssl-devel libyaml-devel
sudo yum install libxslt-devel libxml2-devel
sudo yum install nodejs

Ruby環境

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

rvenb入ったことを確認

rbenv --version

ruby-buildをインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

インストールできるバージョンを確認

rbenv install --list

好きなバージョンのRubyをインストール。
自分はRoRチュートリアルに使うため。2.0.0をインストールしました。

rbenv install -v 2.0.0-p481

再読み込み&確認

rbenv rehash
rbenv versions

インストールした奴に設定

rbenv global 2.0.0-p481

確認

ruby -v

ついでにgemアップデートしとく。

gem update --system

vim

最新版のvimをソースからコンパイルする。
コンパイルに必要な環境を揃える。

sudo yum install mercurial
sudo yum install lua-devel
sudo yum install ncurses-devel

ソースを落としてインストール。

mkdir ~/hg
cd ~/hg
hg clone https://vim.googlecode.com/hg/ vim
cd vim/src
./configure --enable-luainterp
make
sudo make install

参考サイト

http://qiita.com/inouet/items/478f4228dbbcd442bfe8
http://sanrinsha.lolipop.jp/blog/2012/03/vim%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB.html

clang_completeがライブラリのロードに失敗したとき@mac

$
0
0

clang-3.5 via macports

g:clang_library_pathを正しく設定してもロードに失敗する。以下のような感じのエラーがでる。

Referenced from: /opt/local/libexec/llvm-3.5/lib/libclang.dylib
Reason: image not found

dylibの依存関係が解決できないらしい。パスが@executable_path(なんそれ?)からの相対パス。
https://github.com/Rip-Rip/clang_complete/issues/39

install_name_toolを使うと上を変更できる。
http://mactkg.hateblo.jp/entry/2012/05/03/202549

$ sudo install_name_tool -change '@executable_path/../lib/libLLVM-3.5.dylib' /opt/local/libexec/llvm-3.5/lib/libLLVM-3.5svn.dylib   /opt/local/libexec/llvm-3.5/lib/libclang.dylib

エラーメッセージ消える。補完もできる。

てかMacめんどい。

少し経ったら似たようなロードエラーが起きたので以下も実行。

$ sudo install_name_tool -change '@rpath/libLLVM-3.5.0svn.dylib' /opt/local/libexec/llvm-3.5/lib/libLLVM-3.5.0svn.dylib  /opt/local/libexec/llvm-3.5/lib/libclang.dylib

tmux + vim + vim-r-plugin で最高の環境を整える

$
0
0

要約

vim のスニペットは便利だし、この機能を利用しながらRでデータ分析したいから、vim-r-plugin 使うという内容。

ターゲット層

  • terminal-vimでRが使いたい人
  • RStudio が嫌いな人

RStudio でいいんじゃないの?

お帰りください。

材料

  • tmux, ver.1.5以上
  • vim, ver.7.4以上
  • vim-r-plugin, neosnippet-snippets

実行環境

  • OS X 10.9.3

オプション

  • colorout

Rのパッケージcolorout。Rのコンソールの出力を色付けて表示してくれる。tmux でrのコンソールを出力した時にやっぱり色がついていたほうが見やすいよねっていうことで。

完成図

cb98ac5bd1bf68cbe822f4f0b4375167.png

tmuxで左にRコンソールを、右にvimを表示させている画像例(colorscheme:solarizedを利用している)。

手順

  1. tmux のインストール
    • brew install tmux
  2. vim-r-plugin のインストール
    • 公式サイトVIM: r-plugin-installationの方法でインストールする。
    • (NeoBundle を入れていれば、NeoBundle 'vim-scripts/Vim-R-plugin'でインストール可能なのかな?)

使い方

ターミナルで
1. tmux
2. vim test.R
3. vim上で \rf を入力すればRが起動する

Enjoy!


番外

package(colorout)のインストールでエラーが出てインストール出来なかった(OS X 10.9.3)。エラーを良く見てみるとmake: llvm-gcc-4.2: No such file or directoryと言われていたので、ググった。

上記のサイトによると、/Library/Frameworks/R.framework/Resources/etc/にあるファイルMakeconfの中のCCとCXXの内容を

CC=clang
CXX=clang++

に変更するといいらしい。ということで変更したら、インストールできた。

いつでもどこでも Hubot から :help する

$
0
0

Vim Advent Calendar 2013 186日目の記事です。

いつでもどこでも :helpする

Vim では、:help <word>でヘルプを参照することが出来ます。

この間、Web から :helpできるサイトが作られていました。
いつでもどこでも :help する - Vim :help

Emacsからも :helpできるようになりました。
いつでもどこでも Emacsから :help する - Life is very short

Emacsからできるのですから、Vim からも :helpできるべきでした。
いつでもどこでも Vim から :help する

というわけで、Hubot からでも、:helpできるように作りました。

Hubot から :help

今のところかなりざっくり作っただけなので、ゆくゆくは「もしかして〇〇?」な機能をつけたい気もします。

どうにも CoffeeScript 読むのも書くのも苦手。

インストール

$ npm install -S hubot-vimhelpjp

あとは、 external-scripts.json に追加するだけ。

["hubot-vimhelpjp"]

使い方

:vimhelp CTRL-]

リポジトリ

https://github.com/tgfjt/hubot-vimhelpjp

Vim

$
0
0

インデント

>> インデント挿入
<< インデント削除

オートインデント

[Shift + v ]で選択 => "="

エンコード

:e ++enc=指定したいエンコーディング
:e ++enc=euc-jp (エンコーディングEUC-JPを指定して開き直す。)
:e ++enc=shift_jis (エンコーディングSHIFT_JISを指定して開き直す。)
:e ++enc=utf-8 (エンコーディングUTF-8を指定して開き直す。)

チートシート

:
f 検索
;検索繰り返し
, 検索繰り返し反対
s 削除挿入
* カーソル文字検索
C-h, w u 挿入モード削除
C-o 一発で挿入モードに戻る(+zz)
C-r 0 挿入モードで貼り付け
vit タグの中を選択
Vr- その行をハイフンに置換。rは置換
C-w v,s 分割
C-w w,h,l,j,k 移動
yit タグの中で貼り付け
% 対の括弧に移動


* スペースとタブの置換(スペース4つ)
  - スペース=>タブ: (visualモード選択後) :'<,'>!expand -4
  - タブ=>スペース: (visualモード選択後) :'<,'>!unexpand -t4

ファイル新規作成時にテンプレートの値を挿入する。

$
0
0

概要

vimからファイルを新規作成する際に、拡張子によってその新規作成されるファイルの中身をテンプレートから自動で読みこむようにする。
サンプルとしてHTMLファイル。

テンプレートファイルの準備

$HOME/.vim/template/html.txtを作成する。
ディレクトリがなければ作成する。

$HOME/.vim/template/html.txt
<!DOCTYPE html><html><head><metaname="robots"content="noindex,nofollow"/><metacharset="UTF-8"><title>This is Template</title><!--<link rel="stylesheet" type="text/css" href="example.css">--><script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.1.min.js"></script><script type="text/javascript">$(document).ready(function(){});</script><style type="text/css"></style></head><body><p>Hello World!</p></body></html>

ファイル作成時に拡張子がhtmlならテンプレートを読みこむようにする。

.vimrcに下記の1行を追記する。

$HOME/.vimrc
autocmd BufNewFile *.html 0r $HOME/.vim/template/html.txt

これでvimからhtmlファイルを作成すると、今回用意したテンプレートの内容が自動的に挿入されるようになる。

bash、vimの操作の見直し

$
0
0

nanapi勉強会 vol2 - Shellの活用でこれだけ毎日が便利になる」に参加して、自分が非効率にLinuxを使っていることを自覚しました。
なので、改めてbashvimについて足りていなかった部分を備忘録的に書き連ねていきたいと思います。
あくまで自分用なので、既に使っているコマンド等は割愛。

zshzawもそのうち追記していきたいと思います。

bash

インクリメンタルサーチ(Ctrl + r)

過去のコマンド履歴を検索して実行。他の候補を見たい場合はさらにCtrl + r
コマンドの一部を変更して実行したい場合は、カーソルの左右を押して編集。

単語毎に移動(Esc → f、Esc → b)

単語の削除(Ctrl + w)は使っていたけど、単語毎に移動は知らなかった。
ただ、押しにくいですね。

vim

勉強会では熱いemacs推しでしたが、私はvimを使っています。
ただ、改めて見直すと全然使えていないですね。
少しずつ改善していきたいと思います。

設定

検索時に大文字と小文字を区別しない(:set ignorecase)

検索時に大文字を入力した場合のみ大文字/小文字を区別する(:set smartcase)

インクリメンタルサーチ(:set incsearch)

検索条件を入力している最中に随時検索を行う。

タブの入力を空白文字に置き換える(:set expandtab)

いちいち:%s/で置換してました。。。

括弧の入力時にカーソルを対応する括弧の上に一定時間表示(:set showmatch)

コマンドライン補完する時に補完候補を表示(:set wildmenu)

インデントの文字数を設定(:set shiftwidth=値)

カーソル移動

空白を除く行頭に移動(^)

0を押した後に移動してました。

次の特定の文字に移動(f + 特定の文字、Fで前方向)

;で繰り返し、,で逆方向に繰り返し。

次の特定の文字の直前に移動(t + 特定の文字、Tで前方向)

;で繰り返し、,で逆方向に繰り返し。

スクロール

現在のカーソル位置が1番上に来るようにスクロール(zt)

現在のカーソル位置が中心に来るようにスクロール(zz)

現在のカーソル位置が1番下に来るようにスクロール(zb)

マーク機能

マーク機能はテキストの任意の場所に印をつけ、後でその場所に移動することのできる機能。
別のファイルを開くことも可能。
Chefのレシピを編集したりする時には複数のテキストを編集するので、マーク機能を使えばもう少し書きやすくなりそう。

マークの登録(m + アルファベット)

マークの行頭に移動(' + 登録済みのマークのアルファベット)

直前のマークに移動('')

マークの一覧を表示(:marks)

インデント

行のインデントを増やす(>>)

行のインデントを減らす(<<)

選択範囲を自動インデント(選択して=)

インデントの文字数を設定(:set shiftwidth=値)

入力補完

単語の補完(Ctrl + p、Ctrl + n)

Ctrl + pでファイルの上の方を、Ctrl + nで下の方を検索してマッチするワードで補完する。

マルチウィンドウ

ウィンドウを分割(:split)

ウィンドウの切り替え(Ctrl + w → k、Ctrl + w → j)

ファイルを別ウィンドウで開く(:split ファイル名)

カレントディレクトリの変更(:lcd ディレクトリ)

その他

大文字小文字を切り替え(~)

数値の加減(Ctrl + a、Ctrl + x)

現在のカラースキームを確認する

$
0
0

カラースキーム名を確認する

colorscheme

ハイライトグループ一覧

何にどういうスタイルが割り当てられてるか見るには以下。

so $VIMRUNTIME/syntax/hitest.vim

Screen Shot 2014-06-07 at 6.02.49 PM.png

もっと詳細にカラーコード付きで見るには・・・

highlight

Screen Shot 2014-06-08 at 9.13.16 AM.png

さらに以下だと、それぞれのスタイルがどのファイルで定義されているかも表示されます。

verbosehighlight

Screen Shot 2014-06-08 at 9.13.46 AM.png

Goをインストールし、Vimで書く環境を整えるまでの手順

$
0
0

概要

Go言語をインストールして実行できる環境を作る。
VimでGo言語を書く設定をする。

Goのインストール

以下のページでバイナリをダウンロードし、ホームディレクトリに設置する。
https://code.google.com/p/go/wiki/Downloads?tm=2

$ wget https://storage.googleapis.com/golang/go1.2.2.linux-amd64.tar.gz
$ tar xvzf go1.2.2.linux-amd64.tar.gz
$ mv go1.2.2.linux-amd64 ~

Goのパッケージをダウンロードして設定するディレクトリを作成する。

$ mkdir ~/go/packages

.bashrcなどに、以下の環境変数を設定する。

export GOROOT=~/go
export GOPATH=$GOROOT/packages
export PATH=$PATH:$GOROOT/bin

「. ~/.bashrc」などで設定を有効化すると、goコマンドが使用できるようになる。

Vimの設定

入力補完のために、gocodeを入れる。

$ go get github.com/nsf/gocode

Goに同封されているVimの設定とgocodeのVimの設定を読み込むために、
.vimrcに以下の設定を追記する。

.vimrc
filetype off
filetype plugin indent off
setruntimepath+=$GOROOT/misc/vimfiletype plugin indent onsyntaxon
autocmd FileTypego autocmd BufWritePre<buffer> Fmt
exe "set rtp+=".globpath($GOPATH,"src/github.com/nsf/gocode/vim")setcompleteopt=menu,preview

これで自動補完や自動フォーマットが動作するようになる。

「:Import fmt」で、importを追加できたりするのも便利。

参考

Vimを使ったGo言語開発手法
http://mattn.kaoriya.net/software/vim/20130531000559.htm

Go言語のインストール
http://golang.jp/install

GOPATH は適当に決めて問題ない
http://qiita.com/yuku_t/items/c7ab1b1519825cc2c06f

Go言語の開発環境構築 (Golang + Mac OS X + Vim)
http://note-of-engineer-b.blogspot.jp/2013/12/golang-setup.html


脱初心者を目指すVimmerにオススメしたいVimプラグインや.vimrcの設定

$
0
0

はじめに: 「素のVim」から「プラグイン付きのVim」へ

Vimを使い始めた当初、僕は.vimrcの設定だけで実現できる機能に限定した方が「ポータブルなVimスキル」になる気がしていたので、プラグインは全く使わずに「素のVim」を使っていました。
しかし、Vimを使って実務でRailsを開発し始めるとそんなことも言ってられなくなりました。

やはり素のVimだけでは限界があります。
Vimを使って効率よくRailsを開発するためにはプラグインに頼らざるを得ません。

ネットの情報などを参考にしてあれこれプラグインを入れてみましたが、これは手放せないというプラグインもあれば、思ったほど使わなかったというプラグインもあります。

今回の記事では前者のような「これは手放せない!」と僕が考えているプラグインに限定して紹介していきます。

また、後半ではプラグインを使わない.vimrcの一般的な設定についても紹介しています。

対象となる読者

この記事ではこんな方を対象にしています。

  • Vimに関してはまだ初心者でもっと効率よくコードを書きたい人
  • Vimのプラグインに興味はあるが、多すぎてどれを使うべきか迷っている人
  • 基本的なVimコマンドには慣れてきたが、.vimrcのカスタマイズにはまだ抵抗がある人
  • VimでRubyやRailsのコードを書くことが多い人

対象となるVim

僕が使っているのはMacVimですが、ターミナルで使うVimでもほぼ同じように動くはずです。
Windowsは全く試していないのでよくわかりませんが。。。

Vim.png

プラグインを紹介する前に: .vimrcをGitで管理しよう

.vimrcもGitのようなバージョン管理ツールで管理しましょう。
設定を間違えて昔の設定に戻したい!というときもあるでしょうし、GitHubに置いておけば他のマシンからも簡単に共通の.vimrcがダウンロードできます。

また、.vimrcだけでなく、.zshrcや.gitignoreなど、その他のマシン共通の設定ファイルもまとめて管理するようにしておくと便利です。

こうしたいわゆる「dotfiles」を管理する方法は、こちらのサイトを参考にさせてもらいました。

そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。

ちなみに僕のdotfilesもGitHubに置いています。
よかったら参考にしてみてください。

JunichiIto/dotfiles - GitHub

Vundle/NeoBundleでプラグインを自動管理

Vundle/NeoBundleはVimのプラグインを管理しやすくするツールです。
.vimrcにNeoBundle 'Shougo/unite.vim'のようにプラグイン名を記述しておけば、コマンド一つでプラグインをインストールすることができます。

上で紹介した「そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。」ではVundleを使っていますが、最近ではNeoBundleを使う方がイマドキかもしれません。

NeoBundleを使う場合は以下のQiita記事が参考になります。

NeoBundleの導入 - Qiita

設定

僕はNeoBundleのREADMEを参考にして.vimrcを設定しています。

.vimrc
""""""""""""""""""""""""""""""
" プラグインのセットアップ
""""""""""""""""""""""""""""""
if has('vim_starting')
  set nocompatible               " Be iMproved

  " Required:
  set runtimepath+=~/.vim/bundle/neobundle.vim/
endif

" Required:
call neobundle#begin(expand('~/.vim/bundle/'))

" Let NeoBundle manage NeoBundle
" Required:
NeoBundleFetch 'Shougo/neobundle.vim'

" ファイルオープンを便利に
NeoBundle 'Shougo/unite.vim'
" Unite.vimで最近使ったファイルを表示できるようにする
NeoBundle 'Shougo/neomru.vim'
" ...省略

call neobundle#end()

" Required:
filetype plugin indent on

" If there are uninstalled bundles found on startup,
" this will conveniently prompt you to install them.
NeoBundleCheck
""""""""""""""""""""""""""""""

Unite.vimで目的のファイルをすばやく開く

Unite.vimを使うと現在開いているバッファの一覧やカレントディレクトリ以下にあるファイルの一覧、最近使ったファイルの一覧などを表示して、目的のファイルをすばやく開くことができます。

unite.vim2.gif

設定

僕はこちらのサイトを参考にして設定しました。

この設定では以下のようなキーマッピングになります。

  • Ctrl+P => バッファ一覧
  • Ctrl+N => カレントディレクトリ以下のファイル一覧
  • Ctrl+Z => 最近使ったファイルの一覧
.vimrc
" ファイルオープンを便利に
NeoBundle 'Shougo/unite.vim'
" Unite.vimで最近使ったファイルを表示できるようにする
NeoBundle 'Shougo/neomru.vim'

" http://blog.remora.cx/2010/12/vim-ref-with-unite.html
""""""""""""""""""""""""""""""
" Unit.vimの設定
""""""""""""""""""""""""""""""
" 入力モードで開始する
let g:unite_enable_start_insert=1
" バッファ一覧
noremap <C-P> :Unite buffer<CR>
" ファイル一覧
noremap <C-N> :Unite -buffer-name=file file<CR>
" 最近使ったファイルの一覧
noremap <C-Z> :Unite file_mru<CR>
" sourcesを「今開いているファイルのディレクトリ」とする
noremap :uff :<C-u>UniteWithBufferDir file -buffer-name=file<CR>
" ウィンドウを分割して開く
au FileType unite nnoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
au FileType unite inoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
" ウィンドウを縦に分割して開く
au FileType unite nnoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
au FileType unite inoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
" ESCキーを2回押すと終了する
au FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
au FileType unite inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>
""""""""""""""""""""""""""""""

NERDTreeでツリー型のファイル表示を実現

プロジェクト全体のファイル構成を把握する場合は、ファイルをツリー型に表示できた方が便利です。
NERDTreeというプラグインを入れると:NERDTreeというコマンドでカレントディレクトリをツリー表示できます。

また、ファイルを選んでリターンキーを押すと、そのファイルを開くこともできます。

nerdtree.gif

設定

僕はプラグインを入れているだけで、他に特別な設定はしていません。

.vimrc
" ファイルをtree表示してくれる
NeoBundle 'scrooloose/nerdtree'

fugitive.vimでVimからGitを操作 (でも一番よく使うのはgrep検索)

fugitive.vimを使えば、いちいちターミナルを開かなくてもVim上からGitコマンドを自由に実行できる!・・・のかな?
いろいろとコマンドはあるみたいですが、実はあまり使いこなせていません。(ごめんなさい)

個人的に便利だと思うのは:Ggrep hogehogeのようなコマンドを使うと、Gitで管理されているファイルをgrep検索できる点です。
検索結果はQuickfix Listに表示され、その行でリターンキーを押すと該当行にジャンプすることができます。

fugitive.gif

あとは:Greadで変更前の状態に戻したりするときにも使いますね。

それ以外のコマンドについてはネットの情報を参考にして、みなさんは僕以上に使いこなしてくださいw

設定

fugitive.vimには先ほどの:Ggrepを実行したあとにQuickFix Listが開くようにしています。
また、ステータス行に現在のブランチを表示する機能もあるのでその設定も入れています。

.vimrc
" Gitを便利に使う
NeoBundle 'tpope/vim-fugitive'

" grep検索の実行後にQuickFix Listを表示する
autocmd QuickFixCmdPost *grep* cwindow

" ステータス行に現在のgitブランチを表示する
set statusline+=%{fugitive#statusline()}

vim-railsでRailsプロジェクトを便利に操作

vim-railsというプラグインを導入すると、Rails向けの便利なコマンドが使えるようになります。
例えば:Rmodel userと打ち込めばUserモデルを開くことができる、といった具合です。

rails-vim.gif

とはいえ、こちらのプラグインもたくさんある機能の割にはそれほど使いこなせていないかも・・・。
目的のファイルを開くだけなら、前述のUnite.vimやNERDTreeを使って開くこともしばしばです。

設定

やはりこれもプラグインを入れているだけです。

.vimrc
" Rails向けのコマンドを提供する
NeoBundle 'tpope/vim-rails'

endwise.vimでRubyのendキーワードを自動挿入

endwise.vimはRubyのプログラムを書くときに必携ですね!
Rubyファイルでdoブロックやif文を書いて改行すると、自動的にendキーワードを挿入してくれます。

endwise.gif

Rubyを書いているプログラマは必ず入れておきましょう。

設定

こちらもプラグインをインストールするだけでOK!簡単&便利ですね。

.vimrc
" Ruby向けにendを自動挿入してくれる
NeoBundle 'tpope/vim-endwise'

tcomment_vimで複数行コメントのON/OFFを手軽に実現

tcomment_vimも非常に便利なプラグインです。
Shift+Vで対象の範囲を選択し、Ctrl+-(コントロールキー+ハイフン)を2回押すだけで、その範囲をまとめてコメントアウトしたり、コメントを外したりできます。

tcomment2.gif

矩形選択(Ctrl+V)を駆使して頑張るよりもずっと手軽にコメントON/OFFできます。

設定

こちらもプラグインを入れるだけです。
コメントのON/OFFはCtrl+-のほか、gccでも実現できます。

.vimrc
" コメントON/OFFを手軽に実行
NeoBundle 'tomtom/tcomment_vim'

surround.vimでシングルクオートとダブルクオートを切り替える

それほど頻度は多くないかもしれませんが、シングルクオートで囲んでいた文字列をダブルクオートに変えたい、と思うときがたまにあります。
(注: Rubyではダブルクオートの文字列のみ変数を埋め込める)

surround.vimを使うと、cs'" というコマンドでシングルクオートをダブルクオートに置換することができます。
他にもcs'<p>と打ち込むと、シングルクオート文字列を<p>タグで囲むこともできたりして、応用的な使い方がいろいろできます。

surround.gif

設定

これもやはりプラグインを入れるだけでOKです。

.vimrc
" シングルクオートとダブルクオートの入れ替え等
NeoBundle 'tpope/vim-surround'

vim-indent-guidesを使ってインデントの深さを視覚化する

Rubyのメソッドを書いたりするときは行数が多くなったりインデントが深くなったりしないように気をつけて書くことができますが、HAMLでViewを書いたりする場合はどうしてもネストが深くなったり長くなったりしがちです。

そんなときはvim-indent-guidesを使ってインデントを視覚化してやると、どこからどこまでがそのネストに含まれるのかを把握しやすくなります。

indent-guides.png

設定

このプラグインは1行だけ設定が必要です。

.vimrc
" インデントに色を付けて見やすくする
NeoBundle 'nathanaelkane/vim-indent-guides'

" vimを立ち上げたときに、自動的にvim-indent-guidesをオンにする
let g:indent_guides_enable_on_vim_startup = 1

AnsiEsc.vimでログの内容を色づけ

AnsiEsc.vimを使うとRailsのログファイルなど、ANSIカラー情報が埋め込まれているファイルを開くとそのカラー情報が表示に反映されます。

ansiesc.png

設定

このプラグインはインストールするだけでOKです。

.vimrc
" ログファイルを色づけしてくれる
NeoBundle 'vim-scripts/AnsiEsc.vim'

vim-trailing-whitespaceで行末の不要な半角スペースを可視化

vim-trailing-whitespaceを使うと、行末に入ってしまった不要な半角スペースを可視化してくれます。
さらに、:FixWhitespaceというコマンドを実行すると、そうしたスペースを自動的に削除してくれます。

whitespace.gif

・・・なのですが、僕の環境ではちゃんと動いてくれません。
行末に半角スペースを入れた直後はハイライトしてくれるんですが、バッファを切り替えたりするとハイライトがなくなってしまいます。
常にハイライトしてくれるとすごく便利なんですけどね~。

(2014.06.10修正)
後述する「全角スペースの可視化」と設定がケンカしているのが原因でした。全角スペースの可視化設定を見直すことで常にハイライトされるようになりました。

設定

このプラグインもインストールするだけでOKです。

.vimrc
" 行末の半角スペースを可視化
NeoBundle 'bronson/vim-trailing-whitespace'

その他、.vimrcで追加しておくと便利な設定

ついでにプラグインとは無関係に.vimrcで設定しておくと便利な内容を載せておきます。

全角スペースの可視化

以下のような設定をしておくと、全角スペースが可視化されます。

zenkaku.png

・・・が、半角スペースのときと同じで可視化されたりしなかったりです。
なぜだ。

(2014.06.10修正)
autocmdのイベントにBufReadを追加することで全角スペースが常に可視化されるようになりました。
また、match関数は最後のmatch設定だけが有効になってしまうため、「半角スペースの可視化」が無効になっていました。
matchを複数定義するときはmatchadd関数を使うといいようです。
以下のサンプルコードは上記の内容を反映済みです。

.vimrc
" http://inari.hatenablog.com/entry/2014/05/05/231307
""""""""""""""""""""""""""""""
" 全角スペースの表示
""""""""""""""""""""""""""""""
function! ZenkakuSpace()
    highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=darkgray
endfunction

if has('syntax')
    augroup ZenkakuSpace
        autocmd!
        autocmd ColorScheme * call ZenkakuSpace()
        autocmd VimEnter,WinEnter,BufRead * let w:m1=matchadd('ZenkakuSpace', ' ')
    augroup END
    call ZenkakuSpace()
endif
""""""""""""""""""""""""""""""

挿入モード時にステータス行の色を変える

以下のような設定をしておくと、挿入モード時にステータス行の色を変えることができます。

statusline.gif

モードが切り替わったことを目で確認できるので結構便利です。

.vimrc
" https://sites.google.com/site/fudist/Home/vim-nihongo-ban/-vimrc-sample
""""""""""""""""""""""""""""""
" 挿入モード時、ステータスラインの色を変更
""""""""""""""""""""""""""""""
let g:hi_insert = 'highlight StatusLine guifg=darkblue guibg=darkyellow gui=none ctermfg=blue ctermbg=yellow cterm=none'

if has('syntax')
  augroup InsertHook
    autocmd!
    autocmd InsertEnter * call s:StatusLine('Enter')
    autocmd InsertLeave * call s:StatusLine('Leave')
  augroup END
endif

let s:slhlcmd = ''
function! s:StatusLine(mode)
  if a:mode == 'Enter'
    silent! let s:slhlcmd = 'highlight ' . s:GetHighlight('StatusLine')
    silent exec g:hi_insert
  else
    highlight clear StatusLine
    silent exec s:slhlcmd
  endif
endfunction

function! s:GetHighlight(hi)
  redir => hl
  exec 'highlight '.a:hi
  redir END
  let hl = substitute(hl, '[\r\n]', '', 'g')
  let hl = substitute(hl, 'xxx', '', '')
  return hl
endfunction
""""""""""""""""""""""""""""""

自動的に閉じ括弧を入力する

以下の設定を入れると、{, [, (を入力したときに閉じ括弧を自動的に入力してくれます。

autobrace.gif

が、あまり賢くないので「そこは入れてくれなくていいのに」と思うときもしばしばあります。お好みでどうぞ。

.vimrc
""""""""""""""""""""""""""""""
" 自動的に閉じ括弧を入力
""""""""""""""""""""""""""""""
imap { {}<LEFT>
imap [ []<LEFT>
imap ( ()<LEFT>
""""""""""""""""""""""""""""""

最後のカーソル位置を復元する

以下の設定を入れておくと、ファイルを開いたときに前回開いたときの最後のカーソル位置を復元してくれます

.vimrc
""""""""""""""""""""""""""""""
" 最後のカーソル位置を復元する
""""""""""""""""""""""""""""""
if has("autocmd")
    autocmd BufReadPost *
    \ if line("'\"") > 0 && line ("'\"") <= line("$") |
    \   exe "normal! g'\"" |
    \ endif
endif
""""""""""""""""""""""""""""""

その他、設定もろもろ

その他、僕の.vimrcで入れているVimのオプションを以下に載せておきます。
コメントを参考にして、お好みで取り込んでください。

.vimrc
""""""""""""""""""""""""""""""
" 各種オプションの設定
""""""""""""""""""""""""""""""
" タグファイルの指定(でもタグジャンプは使ったことがない)
set tags=~/.tags
" スワップファイルは使わない(ときどき面倒な警告が出るだけで役に立ったことがない)
set noswapfile
" カーソルが何行目の何列目に置かれているかを表示する
set ruler
" コマンドラインに使われる画面上の行数
set cmdheight=2
" エディタウィンドウの末尾から2行目にステータスラインを常時表示させる
set laststatus=2
" ステータス行に表示させる情報の指定(どこからかコピペしたので細かい意味はわかっていない)
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
" ステータス行に現在のgitブランチを表示する
set statusline+=%{fugitive#statusline()}
" ウインドウのタイトルバーにファイルのパス情報等を表示する
set title
" コマンドラインモードで<Tab>キーによるファイル名補完を有効にする
set wildmenu
" 入力中のコマンドを表示する
set showcmd
" バックアップディレクトリの指定(でもバックアップは使ってない)
set backupdir=$HOME/.vimbackup
" バッファで開いているファイルのディレクトリでエクスクローラを開始する(でもエクスプローラって使ってない)
set browsedir=buffer
" 小文字のみで検索したときに大文字小文字を無視する
set smartcase
" 検索結果をハイライト表示する
set hlsearch
" 暗い背景色に合わせた配色にする
set background=dark
" タブ入力を複数の空白入力に置き換える
set expandtab
" 検索ワードの最初の文字を入力した時点で検索を開始する
set incsearch
" 保存されていないファイルがあるときでも別のファイルを開けるようにする
set hidden
" 不可視文字を表示する
set list
" タブと行の続きを可視化する
set listchars=tab:>\ ,extends:<
" 行番号を表示する
set number
" 対応する括弧やブレースを表示する
set showmatch
" 改行時に前の行のインデントを継続する
set autoindent
" 改行時に入力された行の末尾に合わせて次の行のインデントを増減する
set smartindent
" タブ文字の表示幅
set tabstop=2
" Vimが挿入するインデントの幅
set shiftwidth=2
" 行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする
set smarttab
" カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,<,>,[,]
" 構文毎に文字色を変化させる
syntax on
" カラースキーマの指定
colorscheme desert
" 行番号の色
highlight LineNr ctermfg=darkyellow
""""""""""""""""""""""""""""""

余談: neocomplete.vimは使わないの?

便利なプラグインと言えば、賢く自動補完してくれるneocomplete.vimというプラグインが有名です。
しかし僕はこのプラグインを使っていません。
一回導入したことがあるのですが、どうも肌に合わず使うのをやめてしまいました。(使いこなせなかっただけ、という話もある)

Vimには挿入モード時にCtrl+PやCtrl+Nで単純な単語補完をやってくれるので、僕はこの機能を多用しています。
8割ぐらいはこれで十分間に合うので、自動補完系のプラグインは入れていません。

まとめ

言うまでもなくVimの世界は奥がめちゃくちゃ深いので、すごい人の.vimrcはとんでもなくすごいです。
が、今回の記事ではそこまで深いところまでは足を踏み入れずに「比較的簡単にそこそこ使えるプラグインや.vimrcの設定」を集めてみました。

脱初心者を目指すVimmerのみなさんは、よかったら参考にしてみてください。

僕の.vimrcはこちらです

JunichiIto/dotfiles/.vimrc - GitHub

冒頭でも紹介しましたが、僕の.vimrcはGitHubに置いてあるので今回の記事とあわせてチェックしてみると効果的です。

あわせて読みたい

僕がサクラエディタからVimに乗り換えるまで - give IT a try
数年前は僕も全くVimが使えず、サクラエディタのような「メモ帳の延長線上にあるテキストエディタ」を使っていました。
そんな僕がVimに乗り換えようと思った動機と、乗り換えるまでにやったトレーニング(?)の数々を公開しています。

Vimコマンドを定期的にツイートするbotも作っています

Vimコマンドの勉強用に作った@be_vimmer_jpというbotがあります。
このbotをフォローすると定期的にVimコマンドの内容をランダムにツイートしてくれます。
よかったらフォローしてみてください。

@be_vimmer_jp
be_vimmer.png

開発の経緯はこちらのブログエントリにまとめてあります。

Vimコマンドを定期的に解説してくれるTwitterボットを作りました - give IT a try

次回予告? 次は「脱初心者を目指すVimmerにオススメしたい便利なVimコマンド集」を書くかも

時間があれば次は「Vimってやっぱり便利だわ~」としみじみ思う便利なVimコマンドをまとめて紹介したいな~と思っています。
記事が書けたらまた読んでやってください。

gq{motion}: Format the lines that {motion} moves over.

$
0
0
gq{motion}: Format the lines that {motion} moves over.

Spelling suggestions

$
0
0

insert mode で <C-X><C-S>すると、スペル補完ができる.
でも、<C-S>すると、画面がロックされてしまうので, 代わりに <C-X>sを使用する.
ロックされてしまった場合には <C-Q>で解除.

Spelling suggestions                    *compl-spelling*

NOTE: CTRL-S suspends display in many Unix terminals.  Use 's' instead.  Type
CTRL-Q to resume displaying.

VIm tips:wordとWORD

$
0
0

vimにおいて、wordとWORDは違う

wordとは

「アルファベット、数字、アンダースコアのいずれかが並んだもの」または「その三種類以外の非空白文字が並んだもの」

WORDとは

「非空白文字が並んだもの」

具体例

具体例を見た方が分かり易いので、例を挙げます。
wコマンドで word単位の移動、WコマンドでWORD単位の移動ができます(後退ならb及びB)
これを用いて、以下の分がwordとWORDでどのように分けられるのかを見てみます。

例1:
$this->getUser()->isAuthenticated()

wordの場合、 \$, this, ->, getUser, ()->, isAuthenticated, () の7つ。
WORDの場合、 $this->getUser()->isAuthenticated() で1つ。

例2:
foreach (\$tags as $tag)

wordの場合、 foreach, (\$, tags, as, \$, tag, ) の7つ。
WORDの場合、 foreach, (\$tags, as, \$tag) で4つ。

うまく使い分けると更なる高速化が期待できそうな気がします。

vimrcを編集したら自動で反映する

$
0
0

表題どおりの件です。

基本的な設定

ひとまず自分がvimrcの頭に記載している設定を掲載
詳細は下に

vimrc
" init all settingssetall&
" init autocmd
autocmd!" set script encodingscriptencoding utf-8" tiny と small では これ以上 vimrc を読み込まないif!1|finish|endif" This is vim, not vi.setnocompatible" syntax hilightsyntax enable
" auto reload .vimrc
augroup source-vimrc
  autocmd!
  autocmd BufWritePost *vimrc source $MYVIMRC |setfoldmethod=marker
  autocmd BufWritePost *gvimrc if has('gui_running') source $MYGVIMRC
augroup END

koara-local/dotvim

vimrcの再読み込み

少なくとも再読み込みに必要なのは以下の設定
vimrcと名前のつくファイルを更新したら、source $MYVIMRC を実行

vimrc
" auto reload .vimrc
augroup source-vimrc
  autocmd!
  autocmd BufWritePost *vimrc source $MYVIMRC |setfoldmethod=marker
  autocmd BufWritePost *gvimrc if has('gui_running') source $MYGVIMRC
augroup END

参考:
Hack #74: 簡単にvimrcを編集する
Vimでvimrcを編集しやすくする記述とvimrcのリロードでモードラインの設定が無視される問題

普段gvimは使わないのでよく知りませんが、
gvimの場合は、sourceするだけでは反映されない設定があるようなので
tyruさんの、restart.vim あたりをつかうと捗るらしいです(要検証

tyru/restart.vim

参考:
[vim]現在の状態を復元して gVim を再起動する

再読み込み前に設定をリセット

ただこれだけだと、例えば set expandtabなどをコメントアウトした場合に、
Tabが入力される状態に戻ってくれなかったりする。( set noexpandtabとしないといけない )

ちょっとそれは面倒なので、再読み込みのたびに最初に設定をデフォルトに戻す。

vimrc
" init all settingssetall&

これで set expandtabをコメントアウトか削除するだけで、すぐにTabが入力される状態になった。
ついでにgroup設定のされていない autocmdもリセットしているけれども、必要性は不明

vimrc
" init autocmd
autocmd!

ついでにすぐにvimrcを開けるようにする

自分は ,vでvimrcを開くようにしています。

vimrc
" Edit vimrc
nmap ,v :edit $MYVIMRC<CR>
Viewing all 5756 articles
Browse latest View live


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