어쩌라구..?? ㅡㅡa..

Posted
Filed under Linux/vi
원래 소스는 다른데서 업어와서
내 필요와 기호에 따라 이리저리 선택하고 설정해서 쓰는 파일이다.

실제로 내가 안 쓰는 옵션도 있지만 주석으로 막혀있고,
그것들도 언젠가 필요할때가 올 것이다.

set nocompatible
" source $VIMRUNTIME/vimrc_example.vim

" set nu
syntax on
filetype on

"set tabstop=2
set shiftwidth=2
set softtabstop=2
set backspace=indent
set expandtab

au BufNewFile,BufReadPost Makefile set sw=4 sts=0 noexpandtab
au BufNewFile,BufReadPost *.py set ts=4 sw=4 sts=0 noexpandtab

set nowrap
"set cinoptions=>s:0=s(0W0g0hsi2s
set cindent
set ignorecase
set smartcase
set nohlsearch
set incsearch

colo pablo
"colo koehler
"colo elflord
"colo torteiocharset=utf8
"colo delek

"colo billw
"colo darkblack
"colo dante
"colo sean

"set bg=dark
" set backupdir=~/.vim.backup
" set tw=72
" set fileencodings=utf8
"set csprg=/usr/bin/cscope
" set path=.,~/
" set path=.,~/data,~/data/ani
" lang ko_KR

" let g:winManagerWindowLayout = 'TodoList,FileExplorer|BufExplorer'

" runtime ftplugin/man.vim

" if has("cscope")
" set csprg=/usr/bin/cscope
" set csto=0
" set cst
" set nocsverb
" add any database in current directory
" if filereadable(".cscope.out")
   " cs add .cscope.out
" else add database pointed to by environment
" elseif $CSCOPE_DB != ""
   " cs add $CSCOPE_DB
" endif
" set csverb
" endif

"set tags+=./.tags
"set tags+=/usr/include/GL/tags
"set tags+=/usr/src/linux-source-2.6.15/tags
"/usr/include/linux/tags


" ctags commands
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


" Java commands
func! Jc()
     let jc = expand("%")
     exe "!javac ".jc
endfunc
nmap ,jc :call Jc()<CR>

func! Jr()
     let jr = expand("%:r")
     exe "!java ".jr
endfunc
nmap ,jr :call Jr()<CR>



nmap ,b1 :b!1<CR>
nmap ,b2 :b!2<CR>
nmap ,b3 :b!3<CR>
nmap ,b4 :b!4<CR>
nmap ,b5 :b!5<CR>
nmap ,b6 :b!6<CR>
nmap ,b7 :b!7<CR>
nmap ,b8 :b!8<CR>
nmap ,b9 :b!9<CR>
nmap ,bn :bn!<CR>
nmap ,bp :bp!<CR>

map ,n :cn<CR>
map ,p :cp<CR>
map ,l :cl<CR>
map ,w :cw<CR>

map ,ma :w<CR>:make<CR>

"set gfn=curier\ 10
set gfn=Bitstream\ Vera\ Sans\ Mono\ 10
set nohls
set nobackup
set noswapfile


2009년 9월 21일 수정
2006/02/23 17:37 2006/02/23 17:37
Posted
Filed under Linux/tip
convmv 명령으로 변경 가능하고,

쉘 스크립트를 이용하여 변경 가능하다.
파일 이름을 찾아 파이프로 iconv로 보내 변환시키고,
그 결과를 mv를 이용하여 변환한다.

쉘 스크립트 예제
#!/bin/sh

for OLDNAME in `find . -name "*"`; do
  NEWNAME=`echo $OLDNAME | iconv -f euc-kr -t utf8`
  mv $OLDNAME $NEWNAME
done

스크립트 내의 `기호는 작은따옴표가 아니라 탭키 위의 `문자이다. - 주의할것!

convmv 예제
convmv -f euc-kr -t utf-8 -r --nosmart --notest .
2006/02/22 03:30 2006/02/22 03:30
Posted
Filed under Linux/utility
svn 에서 update를 받기 전에 업데이트 받을 목록을 보는 방법이다.
이 명령을 실행했을때 *표시가 있는 파일이 업데이트 될 파일이다.
그러나 업데이트 결과 충돌이 발생할지는 알 수 없다.

svn st -u


옵션 없는 명령만으로는 내가 수정하여 svn에 반영할 목록만 얻을 수 있고,
변경사항이 실제로 내 소스트리에 적용되지 않은채 업데이트 할 목록을 얻을 방법은 없다.
2006/02/15 14:11 2006/02/15 14:11
Posted
Filed under Linux/vi
치환 명령의 구간 설정에서 (다른 명령의 구간도 마찬가지..)
.은 현재위치를,
$은 마지막,
%는 전체를 의미한다.
구간을 지정하는 기호는 ,이다.

:%s/어쩌구/저쩌구/ -> 파일 전체에 대해서 '어쩌구'를 '저쩌구'로 바꾼다.
:.,$s/어쩌구/저쩌구/ -> 현재위치부터 마지막까지 '어쩌구'를 '저쩌구'로 바꾼다.



여러개의 파일을 열었을때 현재 작업 디렉토리와 파일의 작업 디렉토리가 다른경우 불편할때가 있다. (make, 다른 파일을 열때 등등..)
이럴때 사용하는 명령이다. 현재 열린 파일의 디렉토리로 경로를 옮겨준다.

:cd %:p:h



cw, s, r등의 명령을 이용해서 수정한 후 문서의 다른 부분에서 똑같이 수정하려고 할때 . 명령을 사용한다.
바꾸고자 하는 글자 위로 이동한후 .을 누르면 아까와 똑같이 바뀐다.



일반 텍스트(프로그램 소스가 아닌..)를 vi로 편집할때
한 줄이 길어지면 화면에서는 다음줄로 바뀌어서 보이지만,
커서를 이동시키면 화면에 보이는 줄이 아닌 엔터키가 입력된 줄 단위로 커서가 움직인다.
즉, 화면에서는 10줄로 보이지만 vi가 인식하는 줄은 한줄인 경우 커서를 이동하면 10줄을 한번에 건너뛴다.
이때 g를 사용하여 화면에서 보이는 줄 단위로 움직일 수 있다. (단 명령모드에서만..)

gj   -> 화면에 보이는 한줄 아래로 커서를 옮긴다.
gk  -> 화면상의 한줄 위로 커서를 옮긴다.
2006/02/15 09:10 2006/02/15 09:10
Posted
Filed under Linux/tip
실행하는 명령어나 파일의 위치를 알려준다
which 파일명또는명령어

gcc가 어디 깔려있는지,
한 프로그램을 여러개 install했는데 지금 실행되는것이 어느것인지
알고싶을때 유용하다.

특히 기본 설치된 프로그램과 내가 덮어서 설치한것이 충돌하는경우 찾기 쉬워서 좋다.
2006/02/14 23:41 2006/02/14 23:41