Jan 6, 2017

.vimrc 설정방법 공유


vim, vimrc 폴더 다운로드 링크



.vimrc 파일 내용


"===== Vundle =====
set nocompatible              " be iMproved, required
filetype off                  " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" 여기에  원하는 플러그인 삽입
" NERD Tree
Plugin 'scrooloose/nerdtree'
" NERD Tree Git Plugin
Plugin 'Xuyuanp/nerdtree-git-plugin'
" All of your Plugins must be added before the following line
call vundle#end()            " required
"filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
filetype plugin on
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line
"
"

"===== Basic Variables =====
"syntax on                                      " Enables Vim to show parts
                                                " of the text in another font or color
colorscheme vibrantink
"set lines=50 columns=120                       " 창 크기 설정
set fencs=utf-8,euc-kr,cp949,cp932,big5,latin1,urs-2le,shift-jis,euc-jp
"set fileencoding=utf-8
set ls=2                                        " 작업표시줄 항상 표시
set nu                                          " display line numbers on the left
set ts=4                                        " tab space
set sw=4                                        " Shift Width
set ruler                                       " display the cursor position on the last line of the screen
set nobackup                                    " no backup
set backspace=eol,start,indent                  " 백스페이스 사용하면 이전줄과 연결됨
set autoindent                                  " automatically indent
set cindent                                     " automatically indent in C files.
set smartindent                                 " smart indent
set ic                                          " 검색 시 대소문자 구별 안함
set nows                                        " 검색 시 파일 끝에서 처음으로 되돌리기 안함
set hls                                         " 검색어 강조
"===== 버퍼간 파일 이동 =====
map ,1 :b!1<cr>
map ,2 :b!2<cr>
map ,3 :b!3<cr>
map ,4 :b!4<cr>
map ,5 :b!5<cr>
map ,6 :b!6<cr>
map ,7 :b!7<cr>
map ,8 :b!8<cr>
map ,9 :b!9<cr>
map ,0 :b!0<cr>
map ,w :bw<cr>                          " remove current bufferfile

"======== KEY MAPPING ========
map <f1> K
map <f2> <c-w>w
map <f3> gg=G
"map <f4> :cn<cr>                        " :cw -&gt; window showing the locaion list for the current window.
"map <f5> :!./%&lt;
"map <f6> :!clear<cr>:w<cr>:make<cr>
"map <f7> :!clear<cr>:w<cr>:!gcc -W -Wall % -o %&lt;<cr>
"au BufWinEnter *.java
"\ map <f5> :!java %&lt;
"au BufWinEnter *.java,*.cpp,*.c
"\ map <f7> I//<esc>
"au BufWinEnter *.java,*.cpp,*.c
"\ map <f8> ^xx
"map <f9> :!ctags -R<cr>
"au BufWinEnter *.cpp
"\ map <f9> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<cr>
"map <f10> <c->                         " 태그 검색
"map <f11> <c-t>                         " 태그 복귀
map <f12>1 :NERDTree<cr>
"map <f12>2 :TlistToggle<cr>
map <f12>3 gg=G
map ,m :new Makefile<cr>:/PROGS<cr>ww
map <pageup> <c-b>
map <pagedown> <c-f>
"저장
"map <c-s> :w<cr>
"복사
"map <c-c> :'a,'b w! ~/tmp/tmp<cr>
"붙여넣기
"map <c-p> :r ~/tmp/tmp<cr>

NERD Tree 개발버전, NERD Tree git plugin 을 Vundle로 설치


NERD Tree 란 아래 그림과 같이 vim에서 파일시스템을 탐색하고 파일을 열 수 있도록 도와주는 플러그인이다.
http://www.vim.org/scripts/script.php?script_id=1658


https://www.flickr.com/photos/30496122@N07/2862367534/sizes/o/


nerd tree git plugin은 vim 에서 git 저장소의 상태확인을 위해 쓴다.
https://camo.githubusercontent.com/3fe0388df11cb787f36e1fa108398fd3f757eef4/687474703a2f2f692e696d6775722e636f6d2f6a534377476a552e6769663f31
https://github.com/Xuyuanp/nerdtree-git-plugin



1. 설치방법

vimrc를 열어 vundle 플러그인 삽입란에 아래 2라인을 추가한다.

Plugin 'scrooloose/nerdtree'
Plugin 'Xuyuanp/nerdtree-git-plugin'


<플러그인이 추가된 모습>


저장 후 vim 에서 :PluginInstall 입력

설치완료.

.vim .vimrc 작업1 - Vundle 설치

Vundle 은 Vim 플러그인 관리 도구이다.
https://github.com/VundleVim/Vundle.vim

html 이라는 플러그인을 설치할려고 할때
오리지날 vim 플러그인 시스템은

vim/
    syntax/
        html.vim
    indent/
        html.vim

이런식으로 저장되는데

Vundle은

vim/bundle/
    html/
        syntax/
            html.vim
        indent/
            html.vim

이렇게 저장된다.

Vundle의 장점은 html 플러그인을 bundle로서 관리하여 해당 플러그인의 모든 파일을 알맞은 디렉토리에 저장하고 관리하기 편하게 도와준다.


설치하기 앞서 git 이 설치되어있어야한다. git은 sudo apt-get install git 로 설치하면 된다.

1. Vundle Clone

jkpark@cactus:~$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2. vimrc 기본 설정

아래 내용을 .vimrc 파일의 제일 윗줄에 추가한다.

* 설치와 테스트를 위해 NERD Tree 플러그인을 설치할 것이다.
"===== Vundle =====
set nocompatible              " be iMproved, required
filetype off                  " required
" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')
" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'
" The following are examples of different formats supported.
" Keep Plugin commands between vundle#begin/end.
" 여기에  원하는 플러그인 삽입


" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin in
"
" Brief help
" :PluginList       - lists configured plugins
" :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

3. 플러그인 검색 및 설치

플러그인 검색 방법은 vimrc파일을 열어 :BundleSearch 를 입력하면 플러그인 리스트가 출력된다.

원하는 플러그인은 http://vim-scripts.org/vim/scripts.html 에서 찾을 수 있다.
원하는 플러그인을 찾은다음, 해당 이름을 검색하고
Shift+V 라인 선택
Y키로 복사
Ctrl+W ->w 로 창 이동
P로 붙여넣기
하면 아래와 같이 붙여넣기가 된다.



4. 인스톨

vim 을 열고 :PluginInstall 을 입력한 후 엔터

5. 확인

.vim/bundle 에서 설치된 플러그인이 존재하는지 확인한다.
jkpark@cactus:~/.vim/bundle$ ls -al
합계 20
drwxrwxr-x 5 jkpark jkpark 4096  1월  6 14:41 .
drwxrwxr-x 3 jkpark jkpark 4096  1월  6 14:27 ..
drwxrwxr-x 8 jkpark jkpark 4096  1월  6 14:27 Vundle.vim
drwxrwxr-x 9 jkpark jkpark 4096  1월  6 14:41 nerdtree
jkpark@cactus:~/.vim/bundle$



또한 vim 에서 :NERDTree 를 입력후 엔터치면 아래 그림과 같이 NERDTree가 실행된다.





Dec 29, 2016

토렌트 다운로드 완료 후 토렌트 리스트 자동삭제


토렌트 다운로드 후 토렌트 리스트에서 제거하는 방법


*아래 파일을 아무리 수정해도 데몬을 재시작하면 파일이 수정 전으로 돌아간다. 이 문제때문에 한시간을 소비해서 찾은 답은.. 간단했다.
파일 수정하기 전에 데몬은 stop하고 수정하면 된다.
jkpark@cactus:/storages/storage1/public/torrent$ sudo service transmission-daemon stop
꼭 데몬은 stop한 후 아래 작업을 수행한다.


/etc/transmission-daemon/settings.json 파일을 열어 다음과 같이 수정한다.

    "script-torrent-done-enabled": true,
    "script-torrent-done-filename": "/storages/storage1/public/torrent/auto_delete.sh",



/storages/storage1/public/torrent/auto_delete.sh 파일을 만들고 아래 내용을 입력한다.

#!/bin/sh
# Transmission script to remove torrent from lists

# The file for logging events from this script
LOGFILE=/storages/storage1/public/torrent/auto_delete_log

# Remote login details.
TR_HOST="9091 --auth=아이디:비밀번호"

echo "`date '+%Y-%m-%d %H:%M:%S'`  removed from list : $TR_TORRENT_NAME" >> $LOGFILE
transmission-remote $TR_HOST -t $TR_TORRENT_ID --remove


저장 후 권한설정
jkpark@cactus:/storages/storage1/public/torrent$ chmod 777 auto_delete.sh
jkpark@cactus:/storages/storage1/public/torrent$ sudo chown debian-transmission:debian-transmission auto_delete.sh


데몬 시작
jkpark@cactus:/storages/storage1/public/torrent$ sudo service transmission-daemon start



다운로드가 완료되면 리스트에서 토렌트가 제거되고 다음과 같이 로그가 남는다.

jkpark@cactus:/storages/storage1/public/torrent$ cat auto_delete_log
2016-12-29 22:05:48  removed from list : 제거된토렌트명
jkpark@cactus:/storages/storage1/public/torrent$