ページ

ラベル sublimetext2 の投稿を表示しています。 すべての投稿を表示
ラベル sublimetext2 の投稿を表示しています。 すべての投稿を表示

2012-11-09

SublimeText2でコード補完の候補選択をTabで行う方法


SublimeCodeIntelを入れているといちいちctrl+spaceをしなくてもコード補完(auto complete)の候補が出てくる。
コード補完の候補が表示されている時にTabを押して次の候補→次の候補と選択したい。(Google IMEと同じ動作)。下記の設定で実現した。winだけで確認。
Preferences > Key Bindings - Userに
[
 { "keys": ["tab"], "command": "auto_complete", "context":
  [
   { "key": "auto_complete_visible", "operator": "equal", "operand": true }
  ]
 },
 { "keys": ["shift+tab"], "command": "auto_complete_prev", "context":
  [
   { "key": "auto_complete_visible", "operator": "equal", "operand": true }
  ]
 }
]

調べ方

ctrl+spaceでコード補完を表示させた後、続けてctrl+spaceを押せばauto_completeコマンドによってコード補完の次の候補が選択され最後までいくとまた先頭に戻る動作を確認した。
次に Preferences > Key Bindings - Default を検索(正規表現を有効にしてctrl\+spaceをキーワードに検索)して、それっぽい{ "keys": ["ctrl+space"], "command": "auto_complete" }が見つかったので、tabに移植した。
キーバインド設定の空気はここで掴む。Key Bindings — Sublime Text Unofficial Documentation

メモ

Google IMEはTabで候補選択ができて、さらにTab+shiftで一つ前に戻ることができる。この動作もSublimeに取り入れるかはまだ決めてない。ちなみにsublimeでctrl+shift+spaceで同じ動作にならなかった。

追記

Sublime Text Japan Users Groupで教えていただいた。auto_complete_prevコマンドで解決。ありがとうございます!
Auto completeで一つ前の選択に戻すキーバインドを知りたい - Google グループ

2012-11-06

SublimeText2で拡張子ごとにインデントを設定する

設定したいファイルを開いて、以下のように設定すればソフトタブ2になるはず。
Preferences > Settings - More > Syntax Specifc - User
{
 "tab_size": 2,
 "translate_tabs_to_spaces": true
}

SublimeText2のSettings(JSON)の値をコンソールから取得する方法

デフォルトのfont_faceを知りたい。
Preferences > Settings - Default を見ても空欄になっていてわからない。
ググってみると、コンソールに以下で取得できた。
view.settings().get('font_face')
WindowsはConsolas、LubuntuはMonospace とわかった。
getの中を他のキーを変えればいろいろ調べられるはず。

2012-11-01

Sublime Text 2の便利なPackage・Snippetメモ

Packages

  • .css.scssファイルのシンタックスハイライトはPackage Managerで SCSS でいいみたい。

Snippets

あとで書く。

UbuntuでSublimeText2にSublime Package Controlがインストールできない場合

Lubuntu 12.10, Sublime Text 2 (2.0.1)。

Sublime Package Controlのインストール用コマンドはここから。
http://wbond.net/sublime_packages/package_control/installation
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Ubuntu系LinuxでSublime Package Control をインストールするコマンドを打って、「許可がありません」と言われたら権限不足が原因で失敗している。
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IOError: [Errno 13] 許可がありません: u'/home/cherenkov/.config/sublime-text-2/Installed Packages/Package Control.sublime-package'

対応策はSublimeのPackageなどが保存されるディレクトリのパーミッションを変更すればいい。
コマンドラインはわからないのでGUIな方法をメモ。

  1. HOMEを開き、メニュー - 表示 - 隠しファイルを表示する にチェック。
  2. .configをファイルマネージャで開く。
  3. .configを開いたら、メニュー - ツール - rootユーザとして現在のフォルダを開く。
  4. .config以下にsublime-text-2 フォルダがあるはずなので、このフォルダで右クリックメニューを開いて、プロパティ - パーミッション - 内容の変更:誰でも に変更する。 全ての下位フォルダにも適用するか聞かれたら「はい」を選択。
これでいけるはず。


追記
CUIな方法としては、
sudo chmod -R 777 ~/.config/sublime-text-2/
でよさげ。


--------------
起動時に以下のようなダイアログが出て実行できない場合。

Unable to run package setup:
Traceback (most recent call last):
  File "./PackageSetup.py", line 165, in upgrade
    upgradePackage(pkg, pristinedir, datadir, backupdir)
  File "./PackageSetup.py", line 158, in upgradePackage
    os.path.join(backupdir, base), inhibitOverwrite)
  File "./PackageSetup.py", line 90, in upgradeArchive
    writeFile(fname, newar.read(f))
  File "./PackageSetup.py", line 18, in writeFile
    with open(fname, 'wb') as fo:
IOError: [Errno 2] そのようなファイルやディレクトリはありません: u'/home/cherenkov/.config/sublime-text-2/Packages/Package Control/readme.creole'

rootユーザとして現在のフォルダを開く などして、.config/sublime-text-2/Installed Packages にある Package Control.sublime-package を削除すればいい。
その後、前述のパーミッションをちゃんと変更したかチェックして、SublimeのConsoleにPackage Controlインストール用のコマンドを入れる。

2012-10-30

SublimeText2をLubuntuにインストールする

注意

Sublime Text 2, 2.0.1(最新安定バージョン)はibusに対応していないので、日本語入力は以下のようにするしかないっぽい。
Sublime Text2を使い始めてみた。(Linuxでの日本語入力できるようにした) - コロタエンヂニアリング
そりゃないよ…。

追記1
lubuntu12.04でInputHelperを試してみましたが、まともに入力ができませんでした。(確定Enterでダイアログが消えたり)。メモ帳からコピペするほうがマシです。

追記2
lubuntu12.10で試したらInputHelperのダイアログからちゃんと日本語を入力できた。メモ帳よりはマシになりました。


-----


http://www.sublimetext.com/2 からLinux 32/64bit版をダウンロードして適当な場所でtar.bz2を展開する。展開するとスペースを含む「Sublime Text 2」フォルダが作られるがそのままでいくことにする。Ubuntu(Linux)の作法に従い /opt にインストールして、シンボリックリンクを張ってsublimeコマンドを作る。
以下、展開した場所で実行。
sudo mv Sublime\ Text\ 2 /opt
sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/sublime
sudo sublime /usr/share/applications/sublime.desktop
sublime.desktopに以下の内容を保存すると、メニュー - プログラミング にSublime Text 2が追加される。
[Desktop Entry]
Version=1.0
Name=Sublime Text 2
Exec=sublime
Terminal=false
Icon=/opt/Sublime Text 2/Icon/48x48/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
Exec=sublime -n
TargetEnvironment=Unity


以下のサイトを参考にした。