1) global source navigation 

kscope, eclipse 등을 써봤지만, 역시 전 왠지 Gui 인터페이스는 불편함이 많더군요. command prompt 가 익숙해서인지. 
Vim 에서 전 ctags, cscope(또는 gtags) 혼용해서 씁니다. 
(사실은 cscope 하나만 써도 됩니다. ctags 기능은 모두 cscope 가 지원하기 때문에, 하지만 ctags 만 사용할 수도 있으므로) 
cscope 와 ctags 는 Vim 7.0 에서 기본적으로 script 지원 합니다. 

/home/danniill/src 폴더에 작업하는 소스가 위치해 있다고 가정하면, 
$> cd /home/danniill/src 
$> ctags -R . <= tags (ctags database 파일) 생성 
$> cscope -R -b <= cscope.out (cscope database 파일) 생성 

vim 을 구동시킬때 위에서 만든 tags/cscope.out 파일이 있는 디렉토리에서 시작하시는게 좋습니다. 
이유는 vim 이 시작한 디렉토리에서 부터 tags 파일과 cscope.out 파일을 찾기 때문이죠. 
위 파일들이 있는 디렉토리에서 vim . 하시면, netrw script 로 시작합니다. 

netrw 는 NASA 에서 근무중인 Charles Campbell 이 만든 network read/write 가능한 script 입니다. 
local 에서 directory browsing 등을 하는데도, 이만한 script 가 없다고 봅니다. 
netrw 모드로 디렉토리를 이동해서, 내가 edit 할려는 파일을 찾고, enter 를 치면 해당 파일을 엽니다. 

vim 안에서 default 로 set tags 하시면 tags=./tags,./TAGS,tags,TAGS 이렇게 나올겁니다. 
즉, 현재 디렉토리 아래에 tags 파일을 찾고, 없으면 TAGS 를 찾고, 없으면, 상위 디렉토리로 거슬러 올라가면서, tags 혹은 TAGS 파일을 찾습니다. 
ctags 는 C symbol 의 definition 은 찾아주지만, reference 혹은 callled funtion 등을 찾아 주지는 않습니다. 
해당 변수가 쓰여진 모든 경우를 찾고 싶을땐, cscope 나 gtags 를 쓰셔야 합니다. 
cscope 는 default 로 Vim 이 지원하기 때문에, 간단히 :cs 하시면 지원되는 명령어 들을 보실 수 있읍니다. 
하지만, 그냥 쓸려면 :cs find g <찾을려는 c symbol> 이런 형식으로 매번 치기가 여간 번거로운게 아닙니다. 
cscope help 파일을 vim 내에서 찾아보면 나오는 추천방식이 있읍니다. 
home direcotry 아래에 .vimrc 파일 같은걸 생성하시고, 거기에 아래와 같은 map 파일을 써 놓으면 편합니다. 

nmap <F5> :cs find g <C-R>=expand("<cword>") <CR><CR>
nmap <F6> :cs find c <C-R>=expand("<cword>") <CR><CR>
nmap <F7> :cs find s <C-R>=expand("<cword>") <CR><CR>

첫번째 문장만 보면, F5 키를 뒤의 문자열로 normal mode mapping 해주라는 거구요. 
(nmap 대신에 map 쓰시면, 모든 모드에서 지원) 
뒤의 :cs find g 는 cscope 를 이용해서 해당 c symbol의 정의(definition)을 찾으라는 겁니다. 
<C-R>=expand("<cword>")<CR><CR> 부분은 현재 cursor 가 위치한 문자열로 입력을 대체한다는 겁니다. 

두번째 문장은 첫번째 문장과 cscope find 명령만 다릅니다. 
이건 정의가 아닌 함수의 참조(reference)를 찾아주죠. 현재 커서가 위치한 함수를 calling 하는 함수를 찾아줍니다. 

세번째 문장은 현재 커서가 위치한 c symbol 의 모든 reference 를 보여줍니다. 
이건 함수가 아닌 변수도 해당됩니다. 

실제 사용례를 보면, 
커서가 위치한 변수(함수)의 정의를 보고 싶으면, F5 키를 
커서가 위치한 함수가 호출된 모든 경우를 보고 싶으면, F6 키를 
커서가 위치한 변수(함수)의 모든 사용례를 보고 싶으면, F7 키를 누르면 됩니다. 
꽤 쓸만하죠? 

위에서 F5 키는 ctags 명령인 CTRL-] 와 동일합니다. 



2) local source navigation / editing 

현재 open 된 source 파일 내에서 특정 변수의 정의로 가고 싶을 땐, gdnnnn 쳐보세요. 
문서의 처음으로 갈땐 gg, 마지막은 G (다들 아시겠지만) 

auto completion 기능이 지원됩니다. 
어떤 함수나 변수, 또는 문장의 처음 몇글자만 쳐 넣고 , Ctrl-N(또는 Ctrl-P), Ctrl-X Ctrl-L 를 눌러보세요. 
더 자세한 사용법은 ins-completion 부분을 vim 내에서 help 해보세요. 
:help ins-completion 

visual mode 기능이 지원됩니다. 
전통적으로는 3줄 copy 할려면, 3y 한후에, 커서 이동, p 눌렀어야 됬죠. 
전 요새는 V (line 단위 visual 모드가 됩니다) n 또는 p 눌러서 block 선택, 커서 이동, p 누릅니다. 
내가 copy 할려는 부분이 visual 하게 표시되니깐.. 좀 더 편하더군요.


3) 기타 유용한 vim 명령및 스크립트 

:ls <= 현재 open 된 파일들의 list 를 보여줍니다. 
이동은 :buffer 0 또는 :buffer 1 이런식으로 

:marks <= vim 은 0,1,2,3,4,5,6,7,8,9,`,[,]," 에 대해서 marking 을 해 놓습니다. 
각 marking 은 한 화일내의 특정 위치 일 수도, 서로다른 화일내의 특정 위치일 수도 있읍니다. 
이동은 `(숫자1 좌측에 있는) 누르고 mark 표시 (0,1,2,3,....) `` 두번 누르면 직전 편집위치, `0 누르면그전 편집위치, `1 누르면 그전.. 이런식으로 

taglist 스크립트 추천합니다. 
Yegappan Lakshmanan 이라는 친구가 만든 source browsing 하는 스크립트 입니다. 
설치후에 :TlistToggle 하면 화면 좌측에 symbol window 를 표시해 줍니다. 
nmap <F2> :TlistToggle <= F2 키 누르면 symbol window 토글 시켜줍니다. 


4) Vim quickfix 기능 

editing => compile => editing 을 반복하는게 프로그래머들의 일상이죠. 
이 순환 싸이클을 줄여보자는게 목적입니다. 

간단히 요점만 설명하면, 모든 컴파일러는 컴파일 과정중에 log message를 console에 출력해 줍니다. 
vim 은 내부 기능으로 이 출력된 log message를 분석해서 error 가 발생한 파일로 점프 할 수 있게 지원합니다. 

:set makeprg <= default make 프로그램을 보여줍니다. 전 makeprg=make 라고 나오는 군요. 
:set efm <= error file format 을 보여줍니다. 전 이게 너무 많더라구요. 각종 컴파일러 포맷을 지원할려고 해서 그런지. 

ubuntu 8.04 + gcc 4.2.3 버전쓰시는 분들은 아래 efm 으로 바꿔서 사용해 보시면 될듯 합니다. 
gcc 표준 에러파일만 인식하도록 바꾼건데, 제 PC 에서는 잘 동작하네요. 
set efm=%f:%l: %m,%Dmake[%*d]: Entering directory `%f',%Xmake[%*d]: Leaving directory `%f' 

=> 간단히 설명하자면, 
=> %f:%l: %m <== %f (파일이름) 뒤에 공백없이 : 기호가 붙고, %l(라인넘버)가 뒤따르며, 또 : 기호가 붙고 한칸 공백후에( ) error 라는 에러메세지가 나오는 포맷이다. 
=> %Dmake[%*d]: Entering directory `%f' <== make[1] Entering directory 를 이해시키위한 포맷 
=> %Xmake[%*d]: Leaving directory `%f' <== 디렉토리 stack 에서 빠져나가는 포맷 (위의 %D.... 포맷과 쌍으로 씌여져야 한다) 

사용방법은 vim 을 구동한 상태에서 
필요한 소스 수정 
:make <= make 실행 에러가 발생할 경우 첫번째 에러난 소스 파일로 vim 이 자동으로 jump 한다. 
:cl <= 전체 에러 리스트를 보고 싶을때 
:cn <= 현재 에러 위치 수정을 마치고, 다음 에러위치로 이동할때

출처 : http://flytospace.tistory.com/13


정보보기
\d[NAME]table, view, index, sequence 정보 보기
\da[PATTERN]통계 함수들 목록
\db[PATTERN]테이블 스페이스 목록("+" 추가하면 보다 자세히)
\dc[PATTERN]문자코드 변환 규칙(converson) 목록
\dC형변환자 목록
\dd[PATTERN]객체를 위한 코멘트 보기
\dD[PATTERN]도메인 목록
\df[PATTERN]함수 목록("+" 추가하면 보다 자세히)
\dg[PATTERN]그룹 목록
\dn[PATTERN]스키마 목록("+" 추가하면 보다 자세히)
\do[NAME]연산자 목록
\dllarge object 목록, \lo_list 명령과 같음
\dp[PATTERN]테이블, 뷰, 시퀀스의 접근 권한 목록
\dT[PATTERN]자료형 목록("+" 추가하면 보다 자세히)
\du[PATTERN]사용자 목록
\l모든 데이터베이스 목록("+"추가하면 보다 자세히)
\z[PATTERN]테이블, 뷰, 시퀀스의 접근 권한 목록


출처 : http://blog.naver.com/kukuta14?Redirect=Log&logNo=60020555214


$ su -

# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list

# echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886

# apt-get update

# apt-get install oracle-java7-installer






svn import 시  *.a , *.la, *.so, *.o 확장자는 import 되지 않는다.


위의 확장자는 svn default 제외 확장자에 속하므로 checkout 후 위의 파일을 찾지 못하여 에러가 발생할 수 있다.


http://subversion.apache.org/docs/api/1.6/svn__config_8h.html

위의 링크를 보면 아래와 같이 default ignore로 설정된 사항을 볼 수 있다.


#define SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_1   "*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo"
#define SVN_CONFIG__DEFAULT_GLOBAL_IGNORES_LINE_2   "*.rej *~ #*# .#* .*.swp .DS_Store"



제외된 파일을 다시 commit 하기 위해서 다음을 수행한다.


원본 소스에서 파일을 복사한다.


$ find . -name "*.a" -exec cp {} /checkout directory/{} \;


checkout 한 directory에서 add 시킨다.


$ find . -name "*.a" -exec svn add {} \;


모든 확장자를 동일한 작업을 한 후 commit 한다.


$ svn commit



보통 리눅스에서 빌드시 make 툴을 이용하여 빌드를 하게 되는데.. 빌드 타임을 알고 싶으면 다음과 같이 명령을 수행하면 된다.


$ time sh -c 'make'


추가한 소스 리스트


http://cydia.xsellize.com/

http://repo.biteyourapple.net/

http://devbug.me/apt/

http://cydia.iphonecake.com/

http://cydia.myrepospace.com/Bl00dra1n/




설치한 트윅 목록


- afc2add

- iFile

- FolderEnhancer

- HideJB

- KillBackGround

- MultiIconMover

- WiCarrier

- NCSettings

- Omnistat for NotificationCenter

- OpenSSH

- AppCake HD

- Appsync for iOS 6.1

- Infinidock








# apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev



 

 

 

 

 

인터넷 검색 결과

 

 Removed with register editor next lines:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\ASUS\i-Setup180917]
"Id"="{4960FFCF-AAED-4C16-AE65-B0BE6C318F7E}"
"Index"=dword:00000002"
NT\CurrentVersion\Schedule\TaskCache\Tree\ASUS\i-Setup182418]
"Id"="{4960FFCF-AAED-4C16-AE65-B0BE6C318F7E}"
"Index"=dword:00000002"
NT\CurrentVersion\Schedule\TaskCache\Tree\ASUS\i-Setup130842]
"Id"="{4960FFCF-AAED-4C16-AE65-B0BE6C318F7E}"
"Index"=dword:00000002"

 

저 경로의 레지스터 값을 삭제하고 난 후 부터는 부팅 시 저 메시지가 뜨지 않았다.


속성 정보의 대상 제일 마지막에 다음을 추가해 준다.


--disk-cache-dir="z:\ChromeCache" --user-data-dir="z:\Chrome"


램디스크에 임시 파일 설정시, 컴퓨터 전원을 껐다 켤때마다 개인 설정이 없어 지는 현상이 있다.


이 경우 --user-data-dir="z:\Chrome" 부분은 추가하지 않는다.



티스토리에서는 카테고리 목록 펼치기 기능을 따로 제공해 주지 않습니다.

따라서 목록펼치기를 위해 가장 간단한 방법을 알려드리고자 합니다.


관리모드에서 스킨▶HTML/CSS편집 으로 들어갑니다.

그리고 skin.html이라는 html수정창에서 Ctrl+F를 눌러 category라고 입력합니다.

[ ##_category_## ]라는 부분을 찾은 후, 


[ ##_category_## ]와 </div>사이에


 <script language="JavaScript">try{expandTree();}catch(e){}</script>

위 스크립트 소스를 입력해 주시면 됩니다.

+ Recent posts