sublime text 를 쓰던 환경을 그대로 복사하거나 옮길경우

1. 계정폴더의 .config/sublime_text_3 폴더를 그대로 복사하면 된다.

해당 폴더 자체를 dropbox 등으로 동기화를 해도 될 듯 하지만,
충돌 가능성이 있으니 일단 배제.

2. license 파일은 그대로 복사해도 안된다. 다시 키 입력해서 새로 생성한다.





WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

titanium 개발시 TI sutdio 와 tishadow 를 이용해서 개발하면 편리하다.

eclipse 기반의 TI sutdio 가 좋기는 한데, 자신이 쓰는 편집기를 쓰고 싶을 수도 있다.

나의 경우 sublime text 를 쓴다. 그래서 관련 빌드 환경구성 및 사용법을 정리하고자 한다.


다음의 단계로 진행한다.

1) tishadow 실행환경으로 빌드하기 위해 build 를 별도위치에 생성한다.

자신의 프로젝트 위치에서 다음 명령을 내린다.

$ ts appify -d build/appify

다음과 비슷한 결과를 얻게 된다.

[INFO] Beginning Build Process
[INFO] Compiling Alloy for android
[INFO] 35 file(s) bundled.
[INFO] Bundle Ready: {자신의 프로젝트 위치}/build/tishadow/dist/project01.zip
[INFO] Creating new app...
[INFO] TiShadow app ready



다음을 진행하기 전에 android 기기가 연결되어 있는지 확인.

⟫ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
44db4d4c        unauthorized

=> 이렇게 나오면 안된다. device 라고 정상적으로 나와야 함. ( http://blog.1day1.org/518 를 참조)
  usb 연결을 끊었다가 다시 연결한다.

⟫ adb devices
List of devices attached
44db4d4c        device

OK 이제 정상으로 나왔다.


2) appify 방식으로 빌드한다.(실행위치 build/appify => 1)에서 정한 위치)

⟫ ti build -p android -T device

다음 명령으로 빌드하면 최종 폰에서 앱이 설치되고 실행된다.


3) 개발환경과 앱의 appify 가 통신하기 위한 server 실행.

⟫ ts server
[DEBUG] TiShadow server started. Go to http://localhost:3000

앱쪽으로 javascript 코드를 넘겨주는 역할의 서버를 실행한다.(기본포트 3000 을 이용한다)
실행위치는 아무곳이나 상관없다.


연결이 이상한 것 같아 host 를 지정해줬다.

⟫ ts config --host 192.168.0.33

다음 파일에 저장이 된다.
$ cat ~/.tishadow.json
{
    "host": "192.168.0.33"
}

⟫ ts server
[DEBUG] TiShadow server started. Go to http://192.168.0.33:3000

http://192.168.0.33:3000 로 접속해보면 연결된 device 가 보여야 한다.

안보인다. 뭔가 이상하다.

프로젝트가 이상한 것 같아. 다른 정상적인 프로젝트로 다시 해봤다.
아래처럼 Devices 부분에 연결된 장치가 보여야 정상이다.


4) 코드 변경을 감지하여 자동으로 빌드하고 server 로 업로드한다. (실행위치 프로젝트 )

⟫ ts run
[INFO] Beginning Build Process
[INFO] Compiling Alloy for android
[INFO] 35 file(s) bundled.
[INFO] BUNDLE sent.


변경 분만 빌드후 전송 (아래처럼 변경내용이 없으면 나오는 메시지는 정상)

⟫ ts run -u
...
[WARN] Nothing to update.




[아래 부분 실패]  => 해결책 : http://blog.1day1.org/533

자동 코드감지 ( @ 부분을 추가)

⟫ ts @ run -u


정상동작해야 하는데 뭔가 이상하다. 다음과 같은 에러가 발생.

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: watch ENOSPC
    at errnoException (fs.js:1024:11)
    at FSWatcher.start (fs.js:1056:11)
    at Object.fs.watch (fs.js:1081:11)
    at Gaze._watchDir ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:279:30)
    at {홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:336:10
    at iterate ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/helper.js:52:5)
    at Object.forEachSeries ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/helper.js:66:3)
    at Gaze._initWatched ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:332:10)
    at Gaze.add ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:167:8)
    at new Gaze ({홈}/lib/node_modules/tishadow/node_modules/gaze/lib/gaze.js:68:10)

node 패키지에 이상이 있는 것인가? 윈도우 쪽에서는 정상작동했다.

일단 수동으로 ts run 은 가능하니, 일단 여기까지. 추후 문제되는 부분을 확인해봐야 겠다.




5) sublime text 등 자신의 편집기로 개발

자신이 쓰는 편집기로 개발하면 된다. 소스 수정 후에  ts run -u 명령으로 빌드 => 전송 하여 바로 앱의 변경사항을 확인할 수 있다. 처음부터 빌드 하는 방식보다 편하고 빠르게 개발할 수 있다.




WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  1 , 댓글  0개가 달렸습니다.
secret

드디어 sublime text 를 구매했다.

원래 계획은 sublime text 3 정식출시 하면 살까 했는데, 겸사겸사 해서 구매하게 되었다.

EditPlus 를 구매해서 쓰고 있다가, sublime 으로 전향해서 적응중이었다. 적응이 어느정도 끝나서 구매하기로 했다.

개인 70불, 싸다면 싸고 비싸다면 비싼편. (개인 라이선스라 맥/윈도우/리눅스 에서 써도 추가 비용이 들지 않는다)


막판에 phpStorm 으로 할까 고민을 했지만, 똑 적응기간이 필요해서 그냥 sublime 으로 하기로 했다.

phpStorm 은 나중에 테스트.


결제하기로 들어가니, paypal 로 넘어간다.

paypal 에서 직접 신용카드로도 가능한가 보네.(paypal credit? 으로만 되는 줄 알았음)


암튼 결제하고 나니, 라이선스키가 나온다.

Sublime Text 3 열어서 help 에 license 입력하면 끝.




WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

지난글 http://blog.1day1.org/499 에서 ubuntu 환경에서 fcitx 를 세팅했었다.

그런데, sublime text 에서 프로젝트 변경 단축키(Ctrl-Alt-P ) 가 안될 것이다.

fcitx 설정에서  'Show Advance Option' 을 클릭하면 추가적인 옵션이 나온다.

위 표시된 부분처럼 fcitx 에서 동일한 단축키를 사용하기 때문이었다.

해당 부분을 클릭후 ESC 를 눌러 Empty 로 만들면 된다.





WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret


sublime text 3 에서 한글써보기 2번째

  => 지난 글에서는  ibus 를 사용하는 방법이었다.

그러나 미해결 부분도 있고, 뭔가 꼼수같아 보였다.

그러던 차에 unity 쪽의 문제인지 ibus 쪽의 문제인지 모르겠지만, 사용하다가 어떤 이유에 의해 데스크탑환경이 이상해지는 현상때문에 ibus 의 한영전환이 꺼지는(?) 문제가 있었다.

그래서 다른 입력툴을 찾았는데 nabi 와 fcitx 를 테스트 해봤다.

nabi 는 unity 에서 tray 에 넣는 방법이 복잡해보여 일단 패스하고 fcitx 를 사용하는 방법을 정리한다.(추후 nabi 도 테스트 해볼지는 모르겠다)


# sublime text 3 설치

자세한 것은 생략. 아직 베타이긴 하지만, 그냥 써도 될만큼 안정화 된 듯 하다. 2 보다 빠르니 3로 설치하는게 좋을 듯 함.

http://www.sublimetext.com/3 에서 배포판에 맞는 파일을 다운받아 설치(압축해제) 하면 된다.

ubuntu 64bit 버전을 다운받았다.
http://c758482.r82.cf2.rackcdn.com/sublime_text_3_build_3059_x64.tar.bz2

적당한 곳에 압축을 풀고 PATH 를 지정해주면 된다.

~/bin 폴더에 symbolic link 를 해주면 편하다.

ln -s  {설치폴더}/sublime_text ~/bin/sub

터미널에서  sub file.txt  형태로 바로 열수 있다.


# fcitx 설치

apt-get install fcitx-hangul

만 해주면 추가되는 패키지는 알아서 같이 설치해준다.

기본 패키지가 살짝 버전이 낮아서 다음 저장소의 패키지를 사용한다.
https://launchpad.net/~createsc/+archive/3beol/?field.series_filter=raring

sudo add-apt-repository ppa:createsc/3beol
sudo apt-get update
sudo apt-get install fcitx fcitx-hangul


# sublime text 3 에서 한글입력이 가능하도록 처리 (sublime-text-imfix 사용)

1. https://github.com/lyfeyaj/sublime-text-imfix 에서 소스를 다운 받는다.

git clone https://github.com/lyfeyaj/sublime-text-imfix.git

   다운받은 다음 위치 sublime-text-imfix/src 파일 내에 sublime-imfix.c 를 컴파일 하면 된다.

  - 컴파일 사전 준비

    # sudo apt-get install build-essential  libgtk2.0-dev

 - 컴파일

# gcc -shared -o libsublime-imfix.so sublime-imfix.c  `pkg-config --libs --cflags gtk+-2.0` -fPIC

위 libgtk2.0-dev 를 설치하지 않으면 다음과 같은 에러가 발생한다.

Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
sublime-imfix.c:9:21: fatal error: gtk/gtk.h: 그런 파일이나 디렉터리가 없습니다
#include <gtk/gtk.h>
                     ^
compilation terminated.

2. 컴파일이 어려우면 git clone 위치에 lib 에 컴파일된 버전이 있다. 그것을 사용해도 된다.


위 핵심은 libsublime-imfix.so 를 먼저 로딩후에 sublime text 3 를 실행시키는 것이다.


관련 스크립트를 다음과 같이 만들면 된다.

$ cat sublimetext3fcitx


#!/bin/bash
export LD_PRELOAD=/opt/sublime_text_3/lib/libsublime-imfix.so
exec /opt/sublime_text_3/sublime_text "$@"

sublime text 의 위치는 본인이 설치한 위치로 지정하면 된다.


# unity dock 에 넣는 것은 다음을 참조 (http://blog.1day1.org/486)

파일내용을 다음과 같이 했다. ( $ cat sublime_text.desktop )

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Sublime Text 3
Icon=sublime_text.png
Exec=/opt/sublime_text_3/sublimetext3fcitx
StartupNotify=false
StartupWMClass=Sublime_text
OnlyShowIn=Unity;
X-UnityGenerated=true

위 파일을 unity panel (dock?) 에 넣고 실행시켜보면 ST3 가 뜬다. 한영전환 / 한글입력이 잘 되는지 확인해본다.





WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  1 , 댓글  5개가 달렸습니다.
  1. 감사합니다
  2. 감사합니다.
    그런데 저는 한글입력할때 예를들어 '가나' 을 쓴다고하면
    ㄱ 가 간 가나 이렇게 되지 않고 한 글자씩 넘어갈때마다 에디터에 입력되네요

    큰 불편함은 없지만 뭔가 이상해서... 원래 이런가요?
  3. 고맙습니다!
    큰 도움 되었습니다.
    제 블로그에도 링크를 걸어놓았습니다.
  4. 비밀댓글입니다
secret

sublime text 3 환경에서는 그냥 UTF-8 을 기본으로 사용하는 것이 편하다.

간혹 euc-kr 파일을 편집할 필요가 있는 경우 convertToUTF8 패키지를 설치해 해결한다.

혹시 설치 후 다음과 같은 에러를 만나면(우분투/맥OS 에만 해당하는 듯 하다)

Oops! The file {열려고하는 파일} is detected as EUC-KR which is not supported by your Sublime Text.

Please check whether it is in the list of Python's Standard Encodings (http://docs.python.org/library/codecs.html#standard-encodings) or not.

If yes, please install Codecs33 (https://github.com/seanliang/Codecs33/tree/linux-x64) and restart Sublime Text to make ConvertToUTF8 work properly. If it is still not working, please kindly send the following information to sunlxy#yahoo.com:
====== Debug Information ======
Version: 3059-x64
Platform: Linux-3.13.0-27-generic-x86_64-with-debian-jessie-sid
.........
Encoding: EUC-KR

관련이슈 : https://github.com/seanliang/ConvertToUTF8/issues/36


그냥 package control 에서 Codecs33 패키지를 설치해주면 끝.



WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret

우분투에서 어느 정도 한글을 쓰는데는 별 문제는 없다.

그런데, 이번에 sublime text 3 로 이전하면서 한글사용에 문제가 많다.
윈도우 / 맥OS 에서는 잘 되는 듯 싶다. 아무래도 제일 사용자가 적다보니 개발이슈에도 우선순위가 밀려나는 것 같다.

스스로 해결해야지.


# input helper 패키지.

sublime text 3 에서 패키징 방식이 좀 달라진 것 같다.

{HOME} / .config/sublime-text-3/Installed Packages

내에 zip 파일 형태로 바뀐 것 같다.

package control 으로 설치하면 InputHelper.sublime-package 가 해당 폴더에 저장된다.

저 파일을 zip 파일로 풀어서  {HOME} / .config/sublime-text-3/Packages/InputHelper 폴더로 복사한다.

실행시 다음과 같은 에러가 나오면 ( ST3 의 ctrl-` 를 해보면 보인다)

Traceback (most recent call last):
  File "..../sublime_plugin.py", line 549, in run_
    return self.run(edit)
  File "{HOME}/.config/sublime-text-3/Packages/InputHelper/inputhelper.py", line 21, in run
    proc = subprocess.Popen(args, stdout=subprocess.PIPE)
  File "X/subprocess.py", line 818, in __init__
  File "X/subprocess.py", line 1416, in _execute_child
PermissionError: [Errno 13] Permission denied

InputHelper/lib 폴더의

chmod 777 linux_text_input_gui.py

실행권한을 준다.

=> 여기까지 해주면 일단 동작에 이상이 없다.

새로운 창이 떠서 입력하는 것이라 불편하긴 하다. 익숙해지면 괜찮긴 하다.


# sublimeibus 패키지 (아직 미해결)

github 에서 다운로드 받아서 설치해야 한다.

# git clone https://github.com/chikatoike/SublimeIBus.git 

받은 파일을 역시 Packages/ 폴더로 복사한다.

ST3 을 실행 후 검정화면으로 먹통이 된다면 다음 패키지 중에 빠진 것이 있을 것이다. 설치해준다.

# apt-get install python-ibus python-dbus python-xlib

보통 python-xlib 가 빠져있을 것이다.


실행까지는 되는데, 다음과 에러가 있어서 작동하지 않는다. (미해결)

sublime-ibus-agent.py: error expr: disable(0)

sublime-ibus-agent.py: Traceback (most recent call last):
  File "{HOME}/.config/sublime-text-3/Packages/SublimeIBus/sublimeibus/sublime-ibus-agent.py", line 575, in __stdin_cb
    exec(expr)
  File "<string>", line 1, in <module>
  File "{HOME}/.config/sublime-text-3/Packages/SublimeIBus/sublimeibus/sublime-ibus-agent.py", line 512, in disable
    imcontexts[id_no].disable()
AttributeError: 'IBusELInputContext' object has no attribute 'disable'

좀더 연구해봐야 겠다.

추후 해결되면 추가 포스팅.





WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  0개가 달렸습니다.
secret