SlideShare a Scribd company logo
XVim with MacVim 
and smartgrep 
@pebble8888
iOS App Develop 
• AppleのXcodeを使う人がほとんどである 
• Xcodeはvimキーバインドではない 
• vimmerはどうするか?
XVim? 
ではもちろんなく。。
XVim 
• vim key-bindings Xcode plugin 
• OpenSource MIT License 
• 2012年2月からgithubで公開 
• 作者は日本人, JugglerShu氏
Xcode Pluginとは? 
MacOSX 
Xcode 
XVim
見た目はこんな感じ
持っている機能 
• TextObject (ciw, ci”, …) 
• Map ( nmap, … ) 
• Global mark, File mark ( ma, mA, ‘a, ‘A, `` ) 
• Visual Block 
• XVimモードとXcode通常モードの切り替え 
• .xvimrc 
• Window操作 (vim非互換) (CTRL-w j, …)
持っていない機能 
• R ( replace mode ) 
• markの永続化(ファイル化) 
• vim script (変数、制御構造) 
• Windowsで作られたCRLFのファイル対応
Time Line 
2012/2 2014/11 
基本機能追加バッファ高速化 
コードベース大幅修正、VisualBlock機能追加、 
テストコード追加
簡単に行き来したい 
Xcode MacVim 
+XVim
From Xcode to MacVim 
• Xcodeで開いているファイルを行番号を指定し 
てMacVimで開く 
• .xvimrcに以下を追加する 
noremap ,t :execute "!/Applications/mvim +" . line(".") . " %"<CR>
メインブランチに取り込まれ 
ていない機能を使用している 
• bang (!) 
• execute 
• dot(.)による文字連結 
• 組み込み関数line
From MacVim to Xcode 
• MacVimで開いているファイルを行番号を指定 
し、Xcodeで開く 
• AppleScriptを利用したvim plugin
Apple Scriptはこんなの 
#!/usr/bin/osascript 
# arg1 Filename:row 
on run argv 
tell application "Xcode" to activate 
tell application "System Events" 
tell process “Xcode" 
delay 1.0 
keystroke "o" using {shift down, command down} 
keystroke item 1 of argv 
key code {52} 
end tell 
end tell 
end run
vimscript 
• tokorom/xcode-actions.vim 
• pebble8888/xcodeopener
個人的に追加実装したい機能 
• vim互換のCtrl-i,Ctrl-o (開発中) 
• PlaceHolderを意識したカーソル移動 (開発中)
Other option 
• ViCiOUS for Xcode $19.95 
• Xcode plugin。安定している。
Other option 
• AppCode + Ideavim plugin 
• personal license $99 / open source license $0 etc..
AppCode to MacVim 
• AppCodeから行番号指定でMacVimを開くこ 
とは可能
Other option 
• MacVimをメインで使い、Xcodeはそのまま 
• clangでコード補完する 
Bundle ‘Rip-Rip/clang_complete' 
let g:clang_library_path = "/Library/Developer/CommandLineTools/ 
usr/lib"
smartgrep 
• コメントアウト部分を除外するgrep 
• 言語はファイル拡張子で判定 
• git,hgリポジトリのルートフォルダを自動検知 
• メジャーなプログラミング言語に対応 
(C,ObjC,ruby,vimscript,…)
Example 
void glare_at( int brave_boy, int pretty_girl ){ 
/* BUGFIX 
petrify( brave_boy ); 
*/ 
petrify( pretty_girl ); 
} 
$ smartgrep -ew petrify 
/Users/pebble/func.c:5: 
petrify( pretty_girl );
More Information 
• https://github.com/JugglerShu/XVim 
• https://github.com/pebble8888/smartgrep

More Related Content

PDF
すごいVimでhaskellを書こう@なごやまつり
PDF
ちゃんとWeb会議スライド『Coffee script』
PDF
griffon plugin を 実際に作ってみよう #jggug
PPTX
Typescriptの中のこと(浅め)
PDF
scheme処理系の実装
PDF
TruffleSqueakの紹介
PDF
Visual Studio Codeで始めるTypeScript
PDF
The Next Generation for C# Developers
すごいVimでhaskellを書こう@なごやまつり
ちゃんとWeb会議スライド『Coffee script』
griffon plugin を 実際に作ってみよう #jggug
Typescriptの中のこと(浅め)
scheme処理系の実装
TruffleSqueakの紹介
Visual Studio Codeで始めるTypeScript
The Next Generation for C# Developers

What's hot (20)

PDF
Decsx launcherv 2.5
PPTX
Maglica - A Simple Internal Cloud Tool at #techkayac
PPTX
C# 8.0 非同期ストリーム
PDF
Rubyで実はwritev(2) が使われているはなし
PDF
ng-japan 2015 TypeScript+AngularJS 1.3
PDF
NuxtでChrome拡張作ってみた
PDF
コンパイラ指向ReVIEW
PDF
高位合成ツールVivado hlsのopen cv対応
PDF
Nuxt+TypeScript+Class構文のはなし
PPTX
Net fringejp2016
PPTX
jQuery+TypeScriptやってみた
PDF
Study Swift
PDF
Presentation on your terminal
PDF
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
PDF
Vivado hls勉強会1(基礎編)
PDF
Webブラウザで使えるいろんな処理系
PDF
Qt5 の新機能 2012/12/15
PDF
C++ REST SDKを使ってWebサービスを利用する
PDF
20210515 cae linux_install_vb
PDF
Hakodate - simple framework
Decsx launcherv 2.5
Maglica - A Simple Internal Cloud Tool at #techkayac
C# 8.0 非同期ストリーム
Rubyで実はwritev(2) が使われているはなし
ng-japan 2015 TypeScript+AngularJS 1.3
NuxtでChrome拡張作ってみた
コンパイラ指向ReVIEW
高位合成ツールVivado hlsのopen cv対応
Nuxt+TypeScript+Class構文のはなし
Net fringejp2016
jQuery+TypeScriptやってみた
Study Swift
Presentation on your terminal
emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
Vivado hls勉強会1(基礎編)
Webブラウザで使えるいろんな処理系
Qt5 の新機能 2012/12/15
C++ REST SDKを使ってWebサービスを利用する
20210515 cae linux_install_vb
Hakodate - simple framework
Ad

Similar to Using xvim with macvim (20)

PDF
Shougoの開発環境
PDF
うわ…私のEmacs力、低すぎ...?
PDF
10分で作るScala開発環境 using vim
PDF
Tdd vim
PDF
俺とMacとアダルトビデオ[社外版]
PDF
kyotovim#1
KEY
キーボードで完結!ハイスピード Xcodeコーディング
PDF
neobundle.vimについて+おまけ
KEY
Emacs 使いが Vim を使ってみた(ちょっとだけGit)
PPTX
秋のVim祭り Rubyを添えて
PDF
スマホネイティブゲーム 開発効率改善
PDF
MacRuby を使ってみました
PPTX
kyoto vim#1
PDF
CIBC workshop by imagire
PDF
今どきのPerl開発にvimを対応させる
PPTX
Macで快適にプログラミング
PDF
Unite vim
PDF
Vimはこわくない
PDF
Nagoya vim #1 about plugins
PDF
Vim の開発環境
Shougoの開発環境
うわ…私のEmacs力、低すぎ...?
10分で作るScala開発環境 using vim
Tdd vim
俺とMacとアダルトビデオ[社外版]
kyotovim#1
キーボードで完結!ハイスピード Xcodeコーディング
neobundle.vimについて+おまけ
Emacs 使いが Vim を使ってみた(ちょっとだけGit)
秋のVim祭り Rubyを添えて
スマホネイティブゲーム 開発効率改善
MacRuby を使ってみました
kyoto vim#1
CIBC workshop by imagire
今どきのPerl開発にvimを対応させる
Macで快適にプログラミング
Unite vim
Vimはこわくない
Nagoya vim #1 about plugins
Vim の開発環境
Ad

Using xvim with macvim