티스토리 뷰
리눅스에서 vim을 쓰는 사람이면 으레, 당연시리 사용하는 툴셋이 있다.
gtags(ctags) + NERDtree + src expl + cscope + vundle
이 중 vundle은(오타아님) 이래저래 하나씩 받아보면 꽤나 귀찮은 vim의 플러그인들을 관리해주는 녀석이라 요새 잘 쓰고 있음.
매 끼 밥상 바뀌듯 거의 매 분기마다 바뀌는 듯한 작업 환경, 서버, 컴퓨터 때문에 매번 이걸 하나하나 설치하는 것도 꽤나 귀찮은 일-
PluginSearch 한 다음 .vimrc에 넣어주기만 하면 되니
이 또한 편치 아니한가
소스 따라다니려면 어릴 적 봉알친구마냥,
좋아 죽지 못해 꼭 붙어다니는 커플마냥(ㅇ ㅏ ..)
vim과 거의 '반드시'같이 사용되는게 cscope인데, 이 녀석이 AndroidL이 나오면서 좀 삽질을 하고 있다.
물론 원인은 모름.
알면 내가 고쳐서 쓰고 있겠지 -ㅅ-ㅋ
그러다 추천받은게 gnu global
https://www.gnu.org/software/global/global.html
vundle에서 찾아봤는데 목록에 안나온다.
아마도 vundle이 참조하는 github에 안올라왔거나, global 홈페이지에서 소스 형태로만 배포하니까 그런 듯-
https://www.gnu.org/software/global/download.html
위 페이지에서 일단 소스 패키지를 다운받아 준다. 오늘 기준으로 올라와 있는 패키지는 6.4 버전 : global-6.4.tar.gz
회사 서버는 개인 계정에 sudo 권한도 주지 않기 때문에 내 계정에 따로 설치를 해주어야 한다.
절차는 매우 간단. 세 단계만 거치면 내 계정에 global 설치를 끝낼 수 있다.
$ sh reconf.sh
$ ./configure
$ make
그리고 마지막으로 make install
global 설치 시 autoconf, gperf, automake bison, flex, libtool 그리고 ncurses-dev가 필요하다.
없으면 ./configure할 때 에러.
그리고 makeinfo가 없으면 make 하다가 에러. -> sudo apt-get install texinfo
내 계정에 설치해야 하기 때문에 ./configure 해줄 때만 약간 변경을 해주면 :
$ ./configure --prefix=<home directory>
다른 툴을 설치해야 할 때, 툴마다 자신이 저장될 bin 디렉토리를 만들기도, 그냥 바로 설치하기도 하기 때문에 일단 귀찮아서라도 -_-
내 계정에 bin 디렉토리를 따로 만들어 주었다. 해서 내 경우는
$./configure --prefix=~/bin
그리고 global을 실행해줘야 하니까 .bashrc에 경로 추가
export PATH=~/bin/bin:$PATH
global의 특이점이라면 다른 tag/분석툴과 달리 쉘에서 바로 실행될 수 있다는 점(을 홈페이지에서는 강조한다)
뭐 여기저기서 실행할 수 있다면 좋은 일-
먼저 어루만지고자 하는 소스의 루트에 가서
$gtags
해주면 GTAGS / GRTAGS / GPATH가 생성되는데, 이름 그대로 정의/참조관계/경로정보를 담고 있는 녀석들.
390MB정도의 커널에 대한 태그를 만들면 총 290MB가량의 태그가 만들어진다.
쉘에서 간단히 start_kernel이 어디있는지 보려면
vincentlee@selandroid02:~/kernel$ global start_kernel
arch/alpha/boot/bootp.c
arch/alpha/boot/bootpz.c
arch/alpha/boot/main.c
init/main.c
의 결과가 보여진다.
해당 함수를 참조하는 부분과 이에 해당하는 코드 조각을 보려면 -r과 -x이고, 옵션은 조합된다.
vincentlee@selandroid02:~/kernel$ global -rx start_kernel
start_kernel 123 arch/frv/kernel/debug-stub.c __debug_frame->pc = (unsigned long) start_kernel;
start_kernel 563 arch/metag/kernel/setup.c start_kernel();
start_kernel 1206 arch/mn10300/kernel/gdb-stub.c regs->pc = (unsigned long) start_kernel;
start_kernel 375 arch/parisc/kernel/setup.c extern void start_kernel(void);
start_kernel 396 arch/parisc/kernel/setup.c start_kernel();
start_kernel 295 arch/sparc/kernel/setup_32.c start_kernel();
start_kernel 76 arch/tile/kernel/setup.c DEFINE_PER_CPU(unsigned long, boot_pc) = (unsigned long)start_kernel;
start_kernel 82 arch/tile/kernel/setup.c unsigned long __initdata boot_pc = (unsigned long)start_kernel;
start_kernel 32 arch/um/kernel/skas/process.c extern void start_kernel(void);
start_kernel 46 arch/um/kernel/skas/process.c start_kernel();
start_kernel 49 arch/x86/kernel/head32.c start_kernel();
start_kernel 193 arch/x86/kernel/head64.c start_kernel();
start_kernel 10 include/linux/start_kernel.h extern asmlinkage void __init start_kernel(void);
뭐 이런 식-
기타 이런저런 옵션들은 find/grep 등과 같은 키워드를 사용하는 경우가 많으니 적응에 그리 오랜 시간이 걸리지는 않을 듯 하다.
vim에서도 globald을 연동해서 사용할 수 있는데 아래의 페이지에 예제가 설명되어 있다.
https://www.gnu.org/software/global/globaldoc_toc.html#Vim-editor
하나씩 해볼 필요가-
일단은 설치는 다 햇는데 cscope에 적응된 손을 바꾸려면 이것도 또 일이네 ㅋ
튜토리얼 페이지가 따로 제공되니 먼저 이것부터 하나씩 따라해봅시다-
https://www.gnu.org/software/global/globaldoc_toc.html
기변이란 언제나 적응의 설레임과 고통을 함께하는 일인지라, 설정/적응 끝나면 새로 나온 A53 옥타 살릴 때 열심히 써봐야겠다.
'일하자 > Devel_env' 카테고리의 다른 글
Asrock AB350M Pro4 메모리 호환성 확인 (0) | 2021.12.14 |
---|---|
ubuntu 16.04에 wireshark 설치 (0) | 2016.12.21 |
grep 따위는 이제 저 멀리 던져도 되겠다 - ack (0) | 2015.06.19 |
gnu global을 vim에서 사용하기 (0) | 2015.05.20 |
vim 플러그인 설정 (0) | 2015.02.13 |
- Total
- Today
- Yesterday
- 로라질
- 임프레자
- tcx지원문제
- 캡티바 오토크루즈
- 해피해킹
- i30썬루프
- 허브정비
- 정비
- 캡티바
- 티뷰론
- WRX
- 카오디오
- 피팅
- 3.3 후륜
- 레인보우 에어라이트
- 멤버부쉬
- BSC300
- 자전거
- i30
- FD
- 컴팩다드
- STI
- 텐프로
- 관리
- 서브프레임부쉬
- 멤버부싱
- 헛바퀴질
- 52-36
- i30FD
- 부틸매트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |