SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
Vim衆のつどい
mixi 14 Vim衆 @ 2013.05.14
勉強会について
•ライブ映像、スライドを公開中
•Facebookのグループに投げときます
• Twitterで質問してね!
•ハッシュタグは #vim_tsudoi
Kuniwakeからのメッセージ
これは勉強会です!
研修会ではありません!
質問・議論・ツッコミは大歓迎です!
質問・議論・ツッコミは大歓迎です!
大事なことなので2回いいました
Vim設定のすゝめ
@orga_chem
Vimとは
Vimとは
•Vi IMprovedの略
•慣れれば超速、拡張性豊かなエディタ
唐突に
•PCの OS はなんですか?
•Windows
•Mac
•Linux
•いろんな人がいますよね
OSとVim
Windows
Mac
Ubuntu
Vim on Windows
•KaoriYa Vimがおすすめ!
•日本語化されてます
• http://www.kaoriya.net/software/vim/
• Cygwinでもいける
• ただし日本語に不自由する(らしい
Vim on Mac
•MacVim + KaoriYa がおすすめ!
• https://code.google.com/p/macvim-kaoriya/
•ターミナルで起動してもOK
Vim on Ubuntu
•vim-gnome がおすすめ!
sudo	
  apt-­‐get	
  install	
  vim-­‐gnome
•コンソールでもいけるけど
•軽量版のvim-tinyなので注意
sudo	
  apt-­‐get	
  install	
  vim
ここ大事
設定ファイルをコピーするだけで
どのOSでもだいたい動く
つまり
OS間で設定ファイルを共通にできる
結論
VimはVM
http://www.slideshare.net/Shougo/vim-presentation-5330807
環境の確認
この後は Vim の設定を実際におこない、
ビルドアップを体験してもらいます
なので、既に設定をされている方は、
.vimrc, .gvimrc, .vimを退避してください
Vim が起動するか確認してください
Vimの設定
終わる頃には…
:Tutorial
まずは基本操作をおさらいしましょう
Vimを開き、:Tutorial と入力して
Enter!
白状すると、知らないコマンドがいくつかありました
KaoriYa版のみ
もちろん
10 分ぐらいで
できますよね!
まっさらVimの問題
•下のURLのコードを保存して
開いてください
•http://bit.ly/11EoWyw
表示行の上下移動ができないッ
firstKanaLikeExpressionTakeCare
AboutEscapeToAvoidSQLInjection
の先頭の f	
  にカーソルをあわせるにはどう
しますか?
:noremap	
  k	
  gk
•このままだと編集しづらいので、
コマンドモードで下のように実行
:noremap	
  k	
  gk
:noremap	
  j	
  gj
•表示行移動ができるようになりました
:help	
  noremap
:Tutorial	
  にもありましたが、:help	
  
コマンドは重要です
:noremap とはいったいなんなのか
:help	
  noremap
:noremap
•:noremap	
  とは、あるキーの組が
入力されたときに、別のキーの組に
割り当てるコマンド
•j(行移動)→ gj(表示行移動)
:noremap
:helpgrep
•:helpを何で引いたらいいか分からない
ときは、:helpgrep	
  をつかいます
:helpgrep	
  割り当て
:copen
QuickFixをひらく
:e	
  ~/.vimrc
•このままだと Vim を再起動したときに
もう一度:noremapしないといけない
•.vimrcに書き込んでおくことで、
起動時に実行されるようにできる
:e	
  ~/.vimrc
表示行移動設定
:noremap	
  k	
  gk
:noremap	
  j	
  gj
:noremap	
  gk	
  k
:noremap	
  gj	
  j
:noremap	
  <Down>	
  gj
:noremap	
  <Up>	
  gk
上下矢印キー
,ev	
  
•.vimrcは頻繁に変更するのが普通
•.vimrcを開くコマンドを割り当てる
:nnoremap	
  ,ev	
  :tabnew	
  $HOME/.vimrc<CR>
トリガー コマンド
,rv
•保存しただけでは設定が反映されない
•.vimrcを反映させるコマンドを
割り当てる
:nnoremap	
  ,rv	
  :source	
  $HOME/.vimrc<CR>
お気づきの方
Q. なんで先頭がカンマなの??
A. プラグインによる割り当てとの干渉を
防ぐため。いろいろな派閥があります
が Kuniwake はカンマ派です
<Leader>
•今回は , とベタで書きましたが、
<Leader>で , を指定するのもOK
:let	
  mapleader	
  =	
  ‘,’
:nnoremap	
  <Leader>ev	
  ...
行番号の表示
•行番号がないとなにかと不便なので
:set	
  number
•ついでにカーソル行を可視化
:set	
  cursorline
編集記号の表示
•改行・タブが見えないと不便なので
:set	
  list
•さらに記号も普段使わないのに変える
:set	
  listchars=eol:¬,tab:▸
• http://www.dotapon.sakura.ne.jp/blog/?p=323
スペース x 1
インデント幅を変えたい!
:set	
  tabstop=2
:set	
  shiftwidth=2
Tips: タブをスペースに変換する
:set	
  expandtab
>>とか<<で挿入されるインデントの幅
ふつう える
スクロールするのに
画面端が遠すぎる
:set	
  scrolloff=20
よくつかう
• ファイルタイプを指定
:set	
  filetype=javascript
• 改行コードを変える
:set	
  fileformat=unix
• エンコードを変える
:set	
  fileencoding=utf-­‐8
• エンコードを指定して開く
:e	
  ++enc=utf-­‐8
みなさんに質問
何かオススメの設定ありますか?
NeoBundle
•Vimのプラグインのセットアップをして
くれる。プラグインの管理に必須
git	
  clone	
  https://github.com/
Shougo/neobundle.vim.git	
  ~/.vim/
bundle/neobundle.vim
• 他にもあるけど開発者が日本人なのでうれしい
NeoBundleの設定
set	
  nocompatible
filetype	
  off
if	
  has('vim_starting')
	
   set	
  runtimepath+=~/.vim/bundle/
neobundle.vim
endif
call	
  neobundle#rc(expand('~/.vim/bundle'))
“	
  ここでプラグインをインストール
filetype	
  plugin	
  indent	
  on
カラースキームを登録
NeoBundle	
  "https://github.com/
altercation/solarized.git"
NeoBundle	
  "https://github.com/fugalh/
desert.vim.git"
NeoBundle	
  "https://github.com/nanotech/
jellybeans.vim.git"
NeoBundle	
  "https://github.com/tomasr/
molokai.git"
NeoBundle	
  "https://github.com/vim-­‐
scripts/hybrid.vim.git"
:NeoBundleInstall
•プラグインをインストール
:NeoBundleInstall
•カラースキームを試してみる
:colorscheme	
  hybrid
Github
•.vimrcを複数のPCで使い回すために
Githubにあげてみます
•dotfilesというリポジトリ名にされるこ
とが多いです
Github - 下準備 (1)
1) /に .dotfiles ディレクトリをつくる
2).dotfilesに.vimrc、.gvimrc、.vimを配置
3)ln	
  -­‐s	
  .dotfiles/.vimrc	
  ~/.vimrc
4)ln	
  -­‐s	
  .dotfiles/.gvimrc	
  ~/.gvimrc
5)ln	
  -­‐s	
  .dotfiles/.vim	
  ~/.vim
Github - 下準備 (2)
1)cd	
  ~/.dotfiles
2)git	
  add	
  .vimrc	
  .gvimrc
3)git	
  commit	
  -­‐a	
  -­‐m	
  “Initial	
  commit”
4)git	
  remote	
  add	
  origin	
  https://
github.com/UserName/.dotfiles.git
5)git	
  push	
  -­‐u	
  origin	
  master
余力がある人は
NeoBundle をサブモジュールにすると
素敵です
それと変態達の.vimrcには自動展開する
スクリプトが組まれています(!)
おすすめプラグイン
• Shougo/unite.vim
• h1mesuke/unite-
outline
• Shougo/vimfiler
• Shougo/vimshell
• Shougo/
neocomplcache
• Lokaltog/vim-
powerline
• thinca/vim-
qfreplace
• thinca/vim-quickrun
• mattn/zencoding-
vim
• tpope/vim-surround
百聞は一見にしかず
実演します
JavaScripterにむけて
•デフォルトだと JavaScript の
シンタックスが賢くないので
•vim-scripts/vim-javascript が
オススメ!
•helino/vim-json もいいね!
みなさんに質問
何かオススメのプラグインありますか?
最後に
なにか
• Vim で困ってること
• エディタで困っていること
ありませんか?
みんなで議論しましょう!

Mais conteúdo relacionado

Destaque

Membuat Dokumen LaTeX3
Membuat Dokumen LaTeX3Membuat Dokumen LaTeX3
Membuat Dokumen LaTeX3Hirwanto Iwan
 
Scm deshmukh-siom-11-aug-2016
Scm deshmukh-siom-11-aug-2016Scm deshmukh-siom-11-aug-2016
Scm deshmukh-siom-11-aug-2016Sanjeev Deshmukh
 
Blancett group samples 2-lo-res
Blancett group samples 2-lo-resBlancett group samples 2-lo-res
Blancett group samples 2-lo-resMeloyde
 
Programas para publicar documentos
Programas para publicar documentosProgramas para publicar documentos
Programas para publicar documentosCamila Meneses
 
European grand prix (F-1 Race)
European grand prix (F-1 Race)European grand prix (F-1 Race)
European grand prix (F-1 Race)Jessica Ampater
 
งานคอมประก นภ ย
งานคอมประก นภ ยงานคอมประก นภ ย
งานคอมประก นภ ยDiZz Tang Art Zii
 
On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...
On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...
On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...Zac Darcy
 
Tomar Decisiones... Entre la Incertidumbre y la Asertividad
Tomar Decisiones... Entre la Incertidumbre y la AsertividadTomar Decisiones... Entre la Incertidumbre y la Asertividad
Tomar Decisiones... Entre la Incertidumbre y la AsertividadMaría Clara Ruiz Martínez
 
알짜뉴스 8차
알짜뉴스 8차알짜뉴스 8차
알짜뉴스 8차lhjw7
 
Unwired Devices — Технологии Интернета вещей
Unwired Devices — Технологии Интернета вещейUnwired Devices — Технологии Интернета вещей
Unwired Devices — Технологии Интернета вещейOleg Artamonov
 
Introduction to PythonTeX
Introduction to PythonTeXIntroduction to PythonTeX
Introduction to PythonTeXHirwanto Iwan
 

Destaque (20)

Membuat Dokumen LaTeX3
Membuat Dokumen LaTeX3Membuat Dokumen LaTeX3
Membuat Dokumen LaTeX3
 
Scm deshmukh-siom-11-aug-2016
Scm deshmukh-siom-11-aug-2016Scm deshmukh-siom-11-aug-2016
Scm deshmukh-siom-11-aug-2016
 
Tom jones
Tom jonesTom jones
Tom jones
 
成熟稳重
成熟稳重成熟稳重
成熟稳重
 
Blancett group samples 2-lo-res
Blancett group samples 2-lo-resBlancett group samples 2-lo-res
Blancett group samples 2-lo-res
 
Programas para publicar documentos
Programas para publicar documentosProgramas para publicar documentos
Programas para publicar documentos
 
Elasticity
ElasticityElasticity
Elasticity
 
IPython
IPythonIPython
IPython
 
European grand prix (F-1 Race)
European grand prix (F-1 Race)European grand prix (F-1 Race)
European grand prix (F-1 Race)
 
งานคอมประก นภ ย
งานคอมประก นภ ยงานคอมประก นภ ย
งานคอมประก นภ ย
 
Nyuton kelas x
Nyuton kelas xNyuton kelas x
Nyuton kelas x
 
On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...
On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...
On Approach of Estimation Time Scales of Relaxation of Concentration of Charg...
 
Tomar Decisiones... Entre la Incertidumbre y la Asertividad
Tomar Decisiones... Entre la Incertidumbre y la AsertividadTomar Decisiones... Entre la Incertidumbre y la Asertividad
Tomar Decisiones... Entre la Incertidumbre y la Asertividad
 
알짜뉴스 8차
알짜뉴스 8차알짜뉴스 8차
알짜뉴스 8차
 
Newspaper terms
Newspaper termsNewspaper terms
Newspaper terms
 
Unwired Devices — Технологии Интернета вещей
Unwired Devices — Технологии Интернета вещейUnwired Devices — Технологии Интернета вещей
Unwired Devices — Технологии Интернета вещей
 
AFIT Beamer
AFIT BeamerAFIT Beamer
AFIT Beamer
 
Hafta 1
Hafta 1 Hafta 1
Hafta 1
 
Post Script LaTeX ?
Post Script LaTeX ?Post Script LaTeX ?
Post Script LaTeX ?
 
Introduction to PythonTeX
Introduction to PythonTeXIntroduction to PythonTeX
Introduction to PythonTeX
 

Semelhante a Vim衆のつどい

初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発Daisuke Kikuchi
 
オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋Masaki Goto
 
Vim の git への移行について
Vim の git への移行についてVim の git への移行について
Vim の git への移行についてkaoriya
 
5年間Yokohama.vimをやってみて感じた事
5年間Yokohama.vimをやってみて感じた事5年間Yokohama.vimをやってみて感じた事
5年間Yokohama.vimをやってみて感じた事gu4
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacsShougo
 

Semelhante a Vim衆のつどい (6)

初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発初心者Vimmerによるvim+rails開発
初心者Vimmerによるvim+rails開発
 
オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋
 
Vim の git への移行について
Vim の git への移行についてVim の git への移行について
Vim の git への移行について
 
5年間Yokohama.vimをやってみて感じた事
5年間Yokohama.vimをやってみて感じた事5年間Yokohama.vimをやってみて感じた事
5年間Yokohama.vimをやってみて感じた事
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacs
 
vim入門
vim入門vim入門
vim入門
 

Vim衆のつどい