読者です 読者をやめる 読者になる 読者になる

Sublime Text 2のプラグインOpen With Vimを書いてみた

Sublime Text 2というエディタを1ヶ月ほど前に知って、それ以来このエディタをずっと使っています。
Windows/Mac/LinuxのどのOSでも使えて、僕は主にUbuntuにインストールして使っています。


ただしLinux版には日本語ユーザーにとって一番大きな問題点があって、それはLinuxのインプットメソッドに対応していなくて日本語入力ができないことです。
なので、僕は日本語入力するときだけ他のエディタに切り替えて(主にターミナル上のVim)、再びSublime Text 2に戻って作業するということをやっています。


この動作は結構面倒なので、簡単にするためにプラグインを書いてみました。

Open With Vim (Sublime Text 2 plugin)

機能
  • 現在開いているファイルをターミナル上のVimで開きます
  • Vimがインストールされていることを前提にしています
  • Linux版のみ対応しています
インストール方法

Sublime Text 2のパッケージディレクトリに移動する

$ cd ~/.config/sublime-text-2/Packages/

GitHubからダウンロードする

$ git clone https://github.com/itiut/sublime-text-2-open-with-vim OpenWithVim
使い方

Userディレクトリの Default (Linux).sublime-keymap に以下の文を追加します。
デフォルトだと ~/.config/sublime-text-2/Packages/User/ にあります。

{ "keys": ["ctrl+shift+alt+i"], "command": "open_with_vim" }


ファイルを開いている時に "ctrl+shift+alt+i" を押すと、開いているファイルをターミナル上のVimで開きます。

ソースコード

OpenWithVim.py

import sublime
import sublime_plugin
import subprocess

class OpenWithVimCommand(sublime_plugin.WindowCommand):
    def run(self):
        terminal = "gnome-terminal"
        option = "--command"
        vim = "/usr/bin/vim"
        path = None

        if self.window.active_view():
            path = "\"" + self.window.active_view().file_name() + "\""
        else:
            sublime.error_message(__name__ + ": No file to open.")
            return

        args = [terminal, option, vim + " " + path]
        subprocess.Popen(args)