Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

XVimでXcodeのエリア周りの操作もvimにする

More than 3 years have passed since last update.

はじめに

XVimでXcodeのエリア等で使うショートカットもVimで使っているものにしようと思います

XVim導入

導入法に関しては情報が点在しているため割愛します。

基本操作

普段自分が愛用しているキーバインドが全て揃っていてほぼ文句無しです。
モード, 移動, マーク, マクロ等
詳しくは公式ドキュメントに一覧があります。

Xcode操作

Xcodeのエリア周りや実行等のショートカットをいつものVimのキーバインドと同様にするができます。
よく使いそうな例をあげておきます。

コマンド 動作
:run Run
:xcmenucmd Build Build
:xcmenucmd Clean Clean
:xccmd openQuickly ファイル名入力してファイル開く
:xhelp カーソル上の単語のドキュメントを開く
:xcmenucmd Jump to Next Issue エラーへ飛ぶ(次)
:xcmenucmd Jump to Previous Issue エラーへ飛ぶ(前)
:xcmenucmd Fix Next Issue エラー修正する(次)
:xcmenucmd Fix Previous Issue エラー修正する(前)
:xccmd selectNextTab タブ移動(次)
:xccmd selectPreviousTab タブ移動(前)
:ncounterpart headerファイルと入れ替え
:xccmd toggleBreakpointAtCurrentLine ブレイクポイントのトグル
:xccmd commentAndUncommentCurrentLines コメントのトグル
:xccmd findSelectedTextInWorkspace カーソルの乗っている単語をgrep検索する
:xccmd toggleNavigatorsVisibility ナビゲーションエリアの表示/非表示
:xccmd toggleDebuggerVisibility デバッグエリアの表示/非表示
:xccmd toggleToolbarShown ツールバーの表示/非表示
:xccmd toggleUtilitiesVisibility ユーティリティエリアの表示/非表

設定ファイル

.vimrc同様、ホームに.xvimrcを置いて書きます
xcodeに特化した部分を晒しておきます(ほぼ上記の表のもの)

set incsearch
set hlsearch
nnoremap sn :xccmd selectNextTab<Cr>
nnoremap sp :xccmd selectPreviousTab<Cr>
nnoremap <C-o> :xccmd goBackInHistoryByCommand<Cr>
nnoremap <C-i> :xccmd goForwardInHistoryByCommand<Cr>
nnoremap <C-n> :xcmenucmd Jump to Next Issue<Cr>
nnoremap <C-p> :xcmenucmd Jump to Previous Issue<Cr>
nnoremap <C-N> :xcmenucmd Fix Next Issue<Cr>
nnoremap <C-P> :xcmenucmd Fix Previous Issue<Cr>
nnoremap <C-h> :xhelp<Cr>
nnoremap <C--><C--> :xccmd commentAndUncommentCurrentLines<Cr>
nnoremap <Space>r :run<CR>
nnoremap <Space>b :xcmenucmd Build<Cr>
nnoremap <Space>c :xcmenucmd Clean<Cr>
nnoremap <Space>e :xccmd openQuickly<Cr>
nnoremap <Space>a :ncounterpart<Cr>
nnoremap <Space><Space> :xccmd toggleBreakpointAtCurrentLine<Cr>
nnoremap <Space>F viw:xccmd findSelectedTextInWorkspace<Cr>
nnoremap <Space>h :xccmd toggleNavigatorsVisibility<Cr>
nnoremap <Space>j :xccmd toggleDebuggerVisibility<Cr>
nnoremap <Space>k :xccmd toggleToolbarShown<Cr>
nnoremap <Space>l :xccmd toggleUtilitiesVisibility<Cr>
nnoremap <Space>a :xccmd toggleToolbarShown<Cr>:xccmd toggleDebuggerVisibility<Cr>:xccmd toggleNavigatorsVisibility<Cr>:xccmd toggleUtilitiesVisibility<CR>

公式の提供コマンドの追加方法

こちらで提供されているものを使う方法
- Title: 概要
- Action: xccmdを付けて実際に入力する


例:
Title:Show Standard Editor Action:changeToStandardEditor:
Standard Editorを表示するコマンド
:xccmd changeToStandardEditor


ショートカットがXcodeと競合した場合

Xcodeが優先されます。
Xcodeのデフォに合わせるよりVimの操作に合わせたいので
Preferences > Key Bindingsよりショートカットを削除します

参考サイト

cyberagent
サイバーエージェントは「21世紀を代表する会社を創る」をビジョンに掲げ、インターネットテレビ局「AbemaTV」の運営や国内トップシェアを誇るインターネット広告事業を展開しています。インターネット産業の変化に合わせ新規事業を生み出しながら事業拡大を続けています。
http://www.cyberagent.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away