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

[Salesforce][Vim] MacOSX にて Vim で force.com 開発ができる環境を作るまで

$
0
0

こんにちは。黒い画面(ターミナルね)大好き、進地です。

force.com の開発、主に Apex と Visualforce の開発をなんとか黒い画面で、Vim でやれないものかと探したところ、 vim-force.comなる素敵な Vim プラグインがあったので導入しました。

以下は、 MacOSX ( High Sierra ) に vim-force.com プラグインをインストール、設定して、既存組織が突っ込まれている git リポジトリ ともマージして Vim で、バージョン管理されたコードを開発できるように環境を作った時のメモです。

準備

Java JDK/JRE と ant のインストール

Java JDK/JREantが必要なので、入ってない場合はインストールします。

私の環境では ant が入っていなかったので、 Homebrew でサクッとインストールしました(良い時代だ)。

ant-install.sh
$ brew install ant

Tooling-force.com の設置

ant は ~/.ant/lib/ディレクトリの jar をロードしてくれますので、 ~/.ant/lib/ディレクトリを掘り、toolng-force.com.jarをダウンロードして ~/.ant/lib/に設置します。

set-tooling-force.jar.sh
$ cd ~/
$ mkdir-p .ant/lib
$ cd ~/.ant/lib/
$ wget https://github.com/neowit/tooling-force.com/releases/download/v0.4.0.2/tooling-force.com-0.4.0.2.jar

ワークスペースの作成

ワークスペースにするディレクトリを作成します。 ~/force_workspace/としました。

mk_workspace.sh
$ cd ~/
$ mkdir force_workspace

vim-force.com のインストール

neobundle を使っていれば簡単です。
.vimrc の call neobundle#begincall neobundle#endの間に以下を追記します。

NeoBundle 'neowit/vim-force.com'

追記したら、 :NeoBundleInstallを実行すればインストールされます。

参考: NeoBundleを用いたVimプラグイン管理と色設定メモ - Qiita

.vimrc の設定

.vimrc に 以下の設定を行います。パスはフルパスで指定しなければいけないことに注意してください。
以下は カレントユーザーが foo の場合の設定です。

" vim-force.com 設定
let g:apex_properties_folder = "/Users/foo/force_workspace/properties/"
let g:apex_temp_folder = "/tmp/apex/gvim-deproyment"
let g:apex_deployment_error_log = "/tmp/gvim-deployment-error.log"
let g:apex_tooling_force_dot_com_path = "/Users/foo/.ant/lib/tooling-force.com-0.4.0.2.jar"
let g:apex_workspace_path = "/Users/foo/force_workspace"
let g:apex_backup_folder = "/Users/foo/force_workspace/backup"

Apex プロジェクトを既存組織から作る

Vim を立ち上げて、以下を実行します。

:ApexInitProject
Enter project name: myproject
Enter username: (対象組織のユーザー名を入力) 
Enter password: (対象組織のパスワードを入力)
Enter security token: (対象組織のセキュリティトークンを入力。使っているなら)
Enter org type (test|login), if blank then defaults to "test": (Sandbox なら test 、本番組織なら login を入力)

これで、 /Users/foo/force_workspace/myproject/に対象組織の Apex や Visualforce などがロードされます。

git のリポジトリとマージする

既に git でバージョン管理している組織だったので、 git clone して、差分を管理できるようにします。
リモートリポジトリの URL を https://github.com/foo/myproject.gitとします。

git-clone.sh
$ cd ~/force_workspace/myproject/src/
$ git init
$ git remote add origin https://github.com/foo/myproject.git
$ git fetch origin
$ git merge origin/master

git merge origin/master で The following untracked working tree files would be overwritten by merge が出る場合

未コミットの修正が組織にある場合、 The following untracked working tree files would be overwritten by mergeのエラーが出ます(私は出ました)。その場合は、強制的に git の状態でまず上書きして、その後、組織の状態を反映します。

fetch-hard-and-refresh.sh
$ git reset --hard FETCH_HEAD ' リポジトリの状態で強制上書き
$ cd ~/force_workspace/myproject/
$ vim src/classes/SomeApex.cls
:ApexRefreshProject

ハマりどころ

:ApexRefreshProjectなどの一部の vim-force.com プラグインのコマンドは Vim で 当該プロジェクトのなにがしかのファイルを開いた状態でないと Vim に認識されず、実行されないようです。これで私は結構ハマりました。

変更を組織に反映する

ここまでで環境はできていますので、あとは Vim で Apex などを編集したら、組織に :ApexSave:ApexDeployで反映します。

まとめ

Sublime Text や Visual Studio Code のキーバインドを無理矢理 Vim 化してみたり、色々試行錯誤していたのですが、 vim-force.com を導入すれば使い慣れた Vim で開発ができるので大変幸せになれました。 Vimmer で、 Salesforce の開発を幸か不幸かすることになった方は是非お試しください。捗りますよー。

参考


Viewing all articles
Browse latest Browse all 5608

Trending Articles



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