반응형
반응형
반응형

# vi /etc/sysconfig/i18n
LANG="ko_KR.UTF-8"

=>위의 부분 변경
LANG="ko_KR.eucKR"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko"
반응형

'OS > Linux' 카테고리의 다른 글

[VI] vi 에서 utf-8 형식의 글 보기.  (0) 2009.02.11
tar 압축  (1) 2009.02.11
[VI] vi 색상 바꾸기 - vim 파일(putty.vim)  (1) 2009.02.11
[VI] vi 색상 변경  (0) 2009.02.11
ctags  (0) 2009.02.11
반응형
" Vim color file
" Maintainer:   Prachya Boonkwan <kaamanita@hotmail.com>
" Last Change:  April 29, 2003
" Licence:      Public Domain
 
" This package offers a eye-catching color scheme that resembles the
" default color scheme of Putty telnet terminal.
 
" First remove all existing highlighting.
set background=dark
hi clear
if exists("syntax_on")
  syntax reset
endif
 
let colors_name = "putty"
 
hi Normal guifg=Grey guibg=Black
 
hi ErrorMsg guibg=Red guifg=White
hi IncSearch gui=reverse
hi ModeMsg gui=bold
hi StatusLine gui=reverse,bold
hi StatusLineNC gui=reverse
hi VertSplit gui=reverse
hi Visual gui=reverse guifg=Grey guibg=fg
hi VisualNOS gui=underline,bold
hi DiffText gui=bold guibg=Red
hi Cursor guibg=Green guifg=NONE
hi lCursor guibg=Cyan guifg=NONE
hi Directory guifg=Blue
hi LineNr guifg=#BBBB00
hi MoreMsg gui=bold guifg=SeaGreen
hi NonText gui=bold guifg=Blue guibg=Black
hi Question gui=bold guifg=SeaGreen
hi Search guibg=#BBBB00 guifg=NONE
hi SpecialKey guifg=Blue
hi Title gui=bold guifg=Magenta
hi WarningMsg guifg=Red
hi WildMenu guibg=Cyan guifg=Black
hi Folded guibg=White guifg=DarkBlue
hi FoldColumn guibg=Grey guifg=DarkBlue
hi DiffAdd guibg=LightBlue
hi DiffChange guibg=LightMagenta
hi DiffDelete gui=bold guifg=Blue guibg=LightCyan
 
hi Comment guifg=Blue guibg=Black
hi Constant guifg=#BB0000 guibg=Black
hi PreProc guifg=#BB00BB guibg=Black
hi Statement gui=NONE guifg=#BBBB00 guibg=Black
hi Special guifg=#BB00BB guibg=Black
hi Ignore guifg=Grey
hi Identifier guifg=#00BBBB guibg=Black
hi Type guifg=#00BB00 guibg=Black
 
hi link IncSearch       Visual
hi link String          Constant
hi link Character       Constant
hi link Number          Constant
hi link Boolean         Constant
hi link Float           Number
hi link Function        Identifier
hi link Conditional     Statement
hi link Repeat          Statement
hi link Label           Statement
hi link Operator        Statement
hi link Keyword         Statement
hi link Exception       Statement
hi link Include         PreProc
hi link Define          PreProc
hi link Macro           PreProc
hi link PreCondit       PreProc
hi link StorageClass    Type
hi link Structure       Type
hi link Typedef         Type
hi link Tag             Special
hi link SpecialChar     Special
hi link Delimiter       Special
hi link SpecialComment  Special
hi link Debug           Special
 
" vim: sw=2
반응형

'OS > Linux' 카테고리의 다른 글

tar 압축  (1) 2009.02.11
[VI] vi 한글깨짐 현상  (1) 2009.02.11
[VI] vi 색상 변경  (0) 2009.02.11
ctags  (0) 2009.02.11
[VI] vi 명령어..  (0) 2009.02.11
반응형
root 계정이 필요.

/usr/share/vim/vim70/colors

디렉토리에 vim 파일을 저장한다.
(putty.vim 이라면)


개인 루트 디렉토리에서
.vimrc 파일에

:color putty 를 추가한다.
반응형

'OS > Linux' 카테고리의 다른 글

[VI] vi 한글깨짐 현상  (1) 2009.02.11
[VI] vi 색상 바꾸기 - vim 파일(putty.vim)  (1) 2009.02.11
ctags  (0) 2009.02.11
[VI] vi 명령어..  (0) 2009.02.11
리눅스 명령어 / DOS 와 비교  (1) 2009.02.11
반응형

소스 태그를 찾기 위한 만능 해결사 ctags

1) 정의
 
프로그래밍 소스 코드의 태그(전역변수 선언, 함수 정의, 매크로 선언)들의 데이터베이스를 생성하는 유닉스 명령어이다. 인식하는 파일종류는 다음과 같다.

Assembler, ASP, Awk, C, C++, BETA, Cobol, Eiffel, Fortran, Jana, Lisp, Lua, Make, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme, Shell script(Bourne, Korn, Z), S-Lang, Tcl, Vera, Verilog, Vim, YACC/Bison

 

2) 사용

ctags 를 설치하고 사용하려면 사용하려는 소스가 있는 디렉토리에서 ctags R 해주면 된다. R은 하위디렉토리까지 포함해서 하는 것을 의미한다. 명령을 수행하면 해당 디렉토리에 tags 파일이 생성된다.

tags 파일의 구성은 앞에서부터 태그명, 파일명, 파일 내에 정의된 형식 순으로 태그 데이터베이스 파일이 구성된다.

vim에서는 set명령으로 tags변수에 생성한 태그 데이터베이스(tags파일)파일을 설정할 수 있다. 복수개일 경우에는 , 구분자를 이용하여 여러 개의 태그 파일을 지정할 수 있다. )

:set tags = ./tags                                                           (단일지정)

:set tags = ./tags, /usr/src/linux-2.4/tags, /usr/include/tags         (복수지정)

이것도 .vimrc 파일에 지정해 두면 vim을 켤때마다 설정하지 않고 자동으로 설정되도록 할 수 있다. 이렇게 하면 모둔 준비가 끝이난다. 내용을 정리하면 다음과 같다.

설정방법

> ctags -R                                                              ( shell 에서 )

:set tags=./tags                                                      ( vim 에서 )        ( 단일지정 )

or :set tags = ./tags, /usr/src/linux-2.4/tags, /usr/include/tags        ( 복수지정 )

  -- .vimrc에 기입해도 됨.

이제 모든 준비가 끝났으므로 vim을 실행하고 tj명령을 통해서 tag를 찾을 수 있다. 만일 커널 디렉토리의 태그가 있다면 다음과 같이 명령을 수행한다.

:tj start_kernel

tj tag jump의 약자이다. 명령을 수행하면 태그 데이터베이스 파일(tags)에서 start_kernel 태그를 찾아서 리스트로 나열한다. 만약 위 명령대신 :sts start_kernel 을 수행하면 vim창이 수평 분할되면서 start_kernel에 커서가 이동하게 된다.

 

ctags 명령어 요약

:ta [tag] or Ctrl + ]

[tag]가 정의된 위치를 나열하고 선택한 위치로 점프. 현재 위치는 stack push된다.

:ts [tag] or :tj [tag]

:po or Ctrl+t

stack top에 저장된 위치를 pop하고 그 위치로 점프

:sts [tag]

[tag]가 정의된 위치를 나열하고 선택한 위치고 팡을 수평 분할하여 새로 생성된 창에 표시

:stj [tag]

:tn

tj ts로 점프했을 때 다음 tag로 점프

:tp

tj ts로 점프했을 때 이전 tag로 점프

:tr

tj ts로 점프했을 때 처음 tag로 점프

:tl

tj ts로 점프했을 때 마지막 tag로 점프

위에서 중요한 명령들만 외운다면 사용하는데 무리 없다. 하지만 아직도 불편한 점이 있다. 위 명령에서 :tj 로 찾을 경우에 뒤에 써야하는 tag의 이름이 길다면 매우 불편할 것이다. 그래서 .vimrc에서 사용할 수 있는 vim 스크립트를 작성해주면 된다. 스크립트는 다음과 같다.

if version >= 500

func! Sts()

             let st = expand(<cword>)

             exe sts .st

endfunc

nmap ,st :call Sts()<cr>

 

func! Tj()

             let st = expand(<cword>)

             exe tj .st

endfunc

nmap ,tj :call Tj()<cr>

endif

if version >= 500 ~ endif로 묶어서 vim의 버전이 5.0이상일 때만 적용되게 했다. 그리고 Sts(), Tj()함수를 정의하여서 let st st변수를 선언하였다. expand(<cword>) 명령어로 현재의 커서가 위치하는 단어를 읽어 와서 st 변수에다 집어 넣었다. exe 명령으로 뒤에 오는 명령을 수행하는데 sts .st 하게 되어 sts 문자열에 st변수의 문자열을 붙여넣었다.

이렇게 정의한 함수를 nmap ,st :call Sts()<cr> 명령어로 ,st 키에 매핑했다. 그래서 명령모드에서 ,st라고 명령을 내리면 ex모드에서 :call Sts()<cr) 명령이 수앻되어 Sts()함수가 호출된다.


반응형

'OS > Linux' 카테고리의 다른 글

[VI] vi 색상 바꾸기 - vim 파일(putty.vim)  (1) 2009.02.11
[VI] vi 색상 변경  (0) 2009.02.11
[VI] vi 명령어..  (0) 2009.02.11
리눅스 명령어 / DOS 와 비교  (1) 2009.02.11
[VI] vi 팁 - 정렬하기  (0) 2009.02.11
반응형

삽입
I: 줄의 제일 앞에서 입력
A: 줄의 제일 끝에서 입력

콤보command
4w: 4단어 skip후 이동
4b: 4단어 skip후 이동
4j,h,k,l: 커서이동시 지정한 수만큼 건너뛰므로 이동을 좀 더 빨리 할 수 있다.

줄의 결합(J)
2줄이 있고, 2째줄을 1째줄 끝에 붙이고 싶다면, 1째줄에서 J를 입력하면 된다.

커서이동
0: 줄의 처음
^: 줄의 처음(글자가 시작되는 처음)
$: 줄의 끝
w: 단어단위 이동
e: w와 같으나 단어의 끝으로 이동
b: w의 반대방향으로 이동
H, M, L: 커서를 화면 상,중,하로 이동

검색(/후 검색할 단어입력)
n: 뒤로 검색
N: 앞으로 검색

매크로
ab aa aaaa: aa를 입력하면 aaaa로 자동변환

치환
s/pattern/replace:   현재줄의 첫번째 matching pattern치환
s/pattern/replace/g: 현재줄의 모든 matching pattern치환
%s/pattern/replace/g:  모든 줄의 치환
line,lines/pattern/replace: 해당 범위의 치환

저장
w>> file: 지정한 파일에 추가

윈도 split
vi내에서 위아래로 윈도가 분활되면서 2개의 파일을 동시에 open/편집할 수 있다.
ex-mode(:프롬프트상태)에서 'sp 파일이름'
윈도우가 전환은 Ctrl+ww

기타
1. d의 경우 command모드로 계속 남아 있으나 c는 삭제후 insert모드로 변환한다.
   cc, c$, cw등은 유용하게 사용될 수 있다.
2. .은 마지막 명령을 되풀이한다.

visual모드
윈도의 텍스트 에디터와 같이 선택부분이 반전되면서 복사,삭제등을 할 수 있다.
v로 visual모드로 집입하여 커서키를 사용해 원하는 부분을 선택한다.
복사는 y, 삭제/잘라내기는 d로 할 수 있다.

vi설정(vim설정)
자신의 홈디렉토리에 .vimrc를 생성하고 다음과 같이 할 수 있다.

set ai
set ts=4
set nu

각각 auto-indent, tab stop, numbering

윈도에서 작업중 vi에 붙여넣기시 계단현상발생 방지
:set paste

위치기억(UltraEdit의 ALT-F2, F2와 동일한 기능)
m{a-z}: 현재위치를 {a-z}로 북마크함
`{a-z}: 기억해둔 {a-z}로 이동. 보통 한개만 등록했다면 그냥 ``를 사용하면 된다.

레코딩
설정파일의 주석추가/삭제시 유용하게 사용할 수 있다.(이미 vi에 매크로기능이 있지만, 레코딩이
UltraEdit의 매크로기능과 유사하다.)
q{a-z}: {a-z}로 레코딩 시작. {a-z}만 가능한게 아니고 실제 {0-9a-zA-Z"}를 적기 번거로워 이렇게
표시만 한 것이다.
q:      레코딩 종료
@{a-z}: 레코딩 내용 적용(@@를 하면 바로 이전의 레코딩내용을 적용, N@@은 N으로 지정한
숫자만큼 적용)




================================= tip ============

ctrl + k :: 메뉴얼 호출


vi `grep -l 찾을문자열 *` 이렇게하면 문자열이 들어있는 파일들을 한꺼번에 편집가능.
grep 의 -l 옵션은 리스트만 보여주는 옵션.
`` 앞뒤로 꼭 해주어야 한다. 그리고 ~ 키의 `이다. " 키의 ' 이 아니고.
반응형

'OS > Linux' 카테고리의 다른 글

[VI] vi 색상 변경  (0) 2009.02.11
ctags  (0) 2009.02.11
리눅스 명령어 / DOS 와 비교  (1) 2009.02.11
[VI] vi 팁 - 정렬하기  (0) 2009.02.11
[VI] vi 에디터  (1) 2009.02.11

+ Recent posts