'Linux/내부설정'에 해당되는 글 84건

  1. 2012.12.07 Vim Session 기능, highlight color 재 설정 (6)
  2. 2012.11.28 Vundle으로 Vimplugin을 쉽게 관리해 보자 (+ vimplugin 모음) (6)
  3. 2012.10.16 Linux Kernel 3.x.x 에서 Virtualbox돌릴시 생기는 문제점 해결 (8)
  4. 2012.06.02 슈퍼패미콤 에뮬레이터로 고전게임 해보기! (4)
  5. 2012.05.25 삭제된 파일 파일 복구기 (4)

Vim Session 기능, highlight color 재 설정

매번 여는 파일 또열고 여는거 귀찮아서,


project_show.sh 라는 shell script를 만들고, 그안에다가 창분할해서 vim띄우게 만들어 놨었는데...


어느날 어쩌다, 검색하다 보니깐, vim에서도 session기능이 있는걸 알았습니다...


푸푸.. vim을 몇년째 쓰고있는데, 지금 들어서 알게 되었네요...


사용법은 간단합니다...


Store Session

:mksession SESSION_FILEPATH

;그냥 overwrite하려면 :mksession! 하면 됩니다.. 뭐 다 비슷하죠...


Load Session

$vim -S SESSION_FILEPATH


저 같은 경우는 그냥 screen에 바로 저렇게 박아 놨습니다.

screen -t "PROGRAMMING"     1   vim -S /home/lowid/.vim/Session.vim


세션 저장할때, 매번 :mksession 하기 귀찮으니까, 다음과 같이 키 맵핑을 해 놓으면 편합니다.

요렇게 해 놓으면 SQ 누르면 세션이 저장되면서 exit vim

~/.vimrc
nmap SQ <ESC>:mksession! ~/vim/Session.vim<CR>:wqa<CR>


역시 세션이라... 쓰던 파일들은 당연하고, 창분할까지 저번에 열였던 상태로 그대로 보존합니다...


아주 좋아요...


근데 제가쓰는 vim은 세션 기능을 쓰면 ~/.vimrc의 highlight를 무시해 버리더군요...


(아마 아치만 그런듯 한데......)


그래서 어쩔 수 없이, 다음과 같이 그냥 개인 color sheme파일을 만들어 놓고 씁니다...

" Vim color file
" Maintainer:   lowid
" Last Change:  2012/12/07

" 주의: 다른 vim coloscheme 파일과 달리,
"         이 개인 colorsheme은 vim plugin이 color를 설정해서 들어오기 때문에 highlight를 clear하면 안됨
"         적어도 세션 관련해서는 그런듯


if exists("syntax_on")
  syntax reset
endif

let colors_name = "lowid"

highlight LineNr       ctermbg=white       ctermfg=0           cterm=underline
highlight Comment                          ctermfg=darkgray    cterm=underline   
highlight Constant     ctermbg=darkmagenta ctermfg=white
highlight Identifier   ctermbg=cyan        ctermfg=black
highlight Statement    ctermbg=yellow      ctermfg=black
highlight PreProc      ctermbg=blue        ctermfg=white
highlight Type         ctermbg=green       ctermfg=black
highlight Underlined   ctermbg=blue        ctermfg=white
highlight String       ctermbg=black       ctermfg=red        
highlight Special      ctermbg=black       ctermfg=magenta    
highlight Search       ctermbg=black       ctermfg=white      

set statusline+=%{EchoFuncGetStatusLine()}


이후 다음을 추가

~/.vimrc

colorscheme lowid


참조 : http://vim.runpaint.org/editing/managing-sessions

Trackback 0 Comment 6
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2012.12.08 22:46 신고 address edit & del reply

    우앙 이아저씨 요새 포스팅 필 받으셨나보네요 ㅎㅎㅎ
    vim 정말 멋지게사용하고 계시네요 ㅋ
    전 요새 잠시 sublime text 2로 외도중 ㅎㅎㅎ

    • lowid 2012.12.12 12:37 address edit & del

      필받을때 좀 적어놔야죠 ㅋㅋ...
      에디터야 뭐 그냥 아무거나 맘에 드는거 쓰면 좋지 않습니까~
      어짜피 도구일 뿐인데 ㅋ. 나중에 sublime 에 대해서 포스팅이나 한번 해 보시죠~

  2. Favicon of https://fluxbox.tistory.com BlogIcon 猫한 보스코 2012.12.13 10:30 신고 address edit & del reply

    "세션 기능을 쓰면 ~/.vimrc의 highlight를 무시"

    하는 Arch는 역시 삽질용!! ㅋㅋ
    양민은 메모장이나 쓸래염.

    • lowid 2012.12.14 02:42 address edit & del

      머어 고쳤으니깐 됐잖아요~!!! ㅋㅋㅋ

  3. 2013.01.10 22:17 address edit & del reply

    비밀댓글입니다

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2013.02.07 17:12 신고 address edit & del

      쩝... 아무리 생각해도 뭐라고 댓글을 달아야 할런지 모르겠네요 ㅜㅠ...
      그냥 생각나는데로 댓글을...

      그래도 같이 리눅이 얘기 참 많이 하고 그랬는데 아쉽네요...
      꼭 합격하셔서 다시 IRC에서 같이 노닥노닥하구 놀았으면 좋겠어요...
      그래두 심심하면 놀러오구 그러세요...

      시간이 가면 갈수록 옛날부터 리누기 만졌던 사람이 하나둘 줄어드는거 보면 참...
      정작 남은 사람은 본업을 컴퓨터로 하는 사람만 있고 다들 떠나가네요... 후우...

Vundle으로 Vimplugin을 쉽게 관리해 보자 (+ vimplugin 모음)

0, Vundle(Bundle? 이란...)

간단히 말해서, vim plugin 관리자 에요...

pacman, rpm, apt-get이 시스템의 패키지를 관리하는거라면 얘는 vim plugin을 관리하죠.

번잡하게 vim.org에서 script 파일다운받아서 플러그인 디렉토리에 저장하는 삽질을 얘가 대신 해 줍니다.

그런고로 설치도 쉽고, 유지하기도 쉽고, 삭제도 깔끔하게 되고좋죠.


1, 저장소로 부터 설치

$git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle


2, ~/.vimrc에 다음 내용을 넣습니다

set nocompatible filetype off

set rtp+=~/.vim/bundle/vundle/ call vundle#rc()


" 필수 Bundle

Bundle 'gmarik/vundle'

" 이 사이에 원하는 번들(vim plugin)을 넣어줍니다.

filetype plugin indent on


3, 설정파일 다시불러오기

:so ~/.vimrc


4, 번들을 검색해 봅니다...

:BundleSearch


<<티스토리는 원본으로 사진올리기 참으로 힘드네여... 말풍선 안쓰면 원본(?)으로 올리기가 안되네요..

그래서 하는김에...일일이 스샷마다 말풍선을 달았습니다 -_-...>>


5, 원하는 번들을 검색합니다. 머 그냥 vim 에서 항상 찾던식으로.. (주의! 대소문자)

/SearchBundleName


6, 찾았으면 그 라인을 복사하고,  ~/.vimrc (" 이 사이에 원하는 번들(vim plugin)을 넣어줍니다.)아래에 집어 넣습니다. 

그냥 설치해도 되긴하지만.vimrc에 명확하게 정의를 해 놓아야 관리하기가 더 쉽겠죠

(정 안되면 플러그인 디렉토리 뒤져보면 되긴 하지만...)


7, 설정파일을 다시 불러온후, 설치를 시작합니다.

:so ~/.vimrc:
:BundleInstall


추가사항: 삭제할때는 ~/.vimrc에서 Bundle을 주석/삭제한후 vim을 재 시작 하신 후에

:BundleClean하면 됩니다. (BundleClean이라고 해서 전부가 초기화 되는건 아네요. 주석친거만 삭제!)


8, 이제 실제 제가 사용하는 vim plugin을 정리해 보겠습니다.

아마 저번에도 포스팅한게 있지 않을까 싶긴 한데... 추가된것도 많고, 한 김에 다 정리해 보려구요~

자 시작!


Bundle 'minibufexpl.vim'
" 버퍼를 보기쉽게 만들어 줍니다



~/.vimrc


let g:miniBufExplModSelTarget = 1
let g:miniBufExplorerMoreThanOne = 0
let g:miniBufExplModSelTarget = 0
let g:miniBufExplUseSingleClick = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapCTabSwitchBuffs = 1
let g:miniBufExplHSplit = 10
let g:miniBufExplSplitAbove=1 "let g:miniBufExplSplitBelow=1
let g:alternateNoDefaultAlternate = 1


" Alt + number 맵핑

map  ^[1:bf<CR>
map  ^[2 :bf<CR> :bn1<CR>
map  ^[3 :bf<CR> :bn2<CR>
map  ^[4 :bf<CR> :bn3<CR>
map  ^[5 :bf<CR> :bn4<CR>
map  ^[6 :bf<CR> :bn5<CR>
map  ^[7 :bf<CR> :bn6<CR>
map  ^[8 :bf<CR> :bn7<CR>

map  ^[9 :bf<CR> :bn8<CR>


Bundle 'matchparenpp'

" 괄호 (),[],{}에 커서를 갖다대면, 상대 괄호를 깜박여 줍니다. 설정할거 없이 그냥 깔아 쓰면 됩니다. 참 쉽죠?


Bundle 'Conque-Shell'

" vim내부에서 shell을 사용합니다.아직은 화면출력에 문제가 있어, 명령어를 잠시 띄울때 사용합니다.

" 개행이 많을경우, clear, man, 기타 ncurses 프로그램을 사용한후 프로그램을 종료하면 잔상이 남는 문제가 있습니다.

" 그냥 잠시동안 사용하고 싶을때 사용하면 좋을거 같네요.

" 아 그리고 중요한것, vim컴파일 할때 python 확장기능이 사용이 가능하게 되어야 사용이 가능합니다.

" 추가적으로 설정, 더 자세한 것은 :help



~/.vimrc

" let g:ConqueTerm_InsertOnEnter = 1
" let g:ConqueTerm_CWInsert = 1
" let g:ConqueTerm_CloseOnEnd = 1      "쉘을 끝내면 창도 자동으로 닫습니다.


Bundle 'sudo.vim'

" root권한이 있는 파일을 저장할때 사용합니다.

" 저장할때는 다음과 깉이 합니다.

:e sudo:filepath


Bundle 'YankRing.vim'

" y,yy명령으로 복사한 내용을 보고, 붙여넣기 


" 명령은 다음과 같습니다. 명령자체가 설명이니까, 따로 설명은 하지 않겠습니다~

:YRShow

:YRSearch

:YRClear

:YRPop

:YRPush


" ~/.vimrc 에 yank파일경로를 지정합니다. 안하면 홈 디렉토리가 지저분해 지니까요.

let g:yankring_history_dir = '~/etc/vim'


Bundle 'https://github.com/Lokaltog/vim-powerline.git'

" powerline, vim의 아래창(상태표시줄)을 좀더 visual하게 보여줍니다.

" Shell의 TERM 변수가 "xterm-86color" 또는 "xterm-256color"로 설정되어 있어야 안깨지고 제대로 나옵니다.
" ps; git로 설치하여야 합니다. 일단 제가 설치할때는 번들이 있긴한데 git에서 받아오질 못하더라고요...

" ~/.vim/bundle/vim-powerline/autoload/Powerline/Colorschemes

" Pl#Hi#Segments(['mode_indicator']의 값을 변경하면, MODE색을 다른것으로 바꿀수 있습니다.

" 그리고 좀 더 fansy하게 보이려면 다음을 참조해 보세요.

" https://github.com/Lokaltog/vim-powerline/blob/develop/fontpatcher/README.rst


Bundle 'c.vim'

" c의 skel을 미리 작성해 줍니다. snipMate랑 같이쓰세요...

" 자주 쓰는거 몇개만 요약합니다. 명령 모드에서 다음을 입력 해 보세요.

" 간단한건 아래의 박스... 더 많은 단축키는 여기를 참조하세요 http://lug.fh-swf.de/vim/vim-c/csupport.html

\p< : include (#include <stdio.h>)

\p"  : include (#include "stdio.h" )

\im : main function

\if   : user defined function

\ias : assert();


Bundle 'DoxygenToolkit.vim'

" doxygen을 위한 주석 생성기능 입니다.

" 이렇게 하면 나중에 문서화 하기 훨씬 쉽겠죠?





Bundle 'EasyMotion'

" 단어(word)간 이동을 쉽게 합니다, \\w를 눌러보세요 :D

" 주변의 위치로 이동할때, 이제 hhh...,lll...www...WWW... 이런거 좀 적게 하게 되겠죠.

" ps; 단어 이동이 w니까! 로 생각하면 외우시기 좋을겁니다.


 \\w 

 로 단어 이동

 \\W 

 앞으로 단어 이동

 \\f

 뒤로 글자 검색

 \\F

 앞으로 글자 검색



Bundle 'neocomplcache'

" 향상된 자동완성 기능


Bundle 'ctags.vim'

Bundle 'cscope.vim'

" 아래 2개는 C,C++프로그래머라면 필수... 말이 필요없죠.

" ctrl + ] 이거 하나만으로도 대단하지 않나요? 해더파일 보는거랑...


Bundle 'cscope-quickfix'

" 제가 ctags와 더불어 오랬동안 사용했던 확장기능 이죠 ㅋㅋ..

" 컴파일 결과를 나타내는 결과 버퍼를 사용합니다. 에러/경고가 발생했을떄 편하게 위치를 이동할수 있습니다.

"~/.vimrc

autocmd BufReadPost quickfix    setlocal nonu
autocmd FileType asm            set makeprg =nasm\ -f\ bin\ -o\ %<.img\ %
autocmd FileType c,cpp          set makeprg =gcc\ -g\ -Wall\ -O2\ %\ -o\ %<
autocmd FileType sh               set makeprg =%


" 현재 디렉토리에 Makefile이 있다면, 기존 makeprg 대신 make명령을 사용한다           
func! Makefile_Run()                                                                 
    let now_file_path = expand("%:h")                                                
    if (now_file_path == "")                                                         
        let now_file_path = "."                                                      
    endif                                                                            
    if filereadable(now_file_path."/Makefile")                                       
        exec 'lcd ' . now_file_path                                                  
        set makeprg=make                                                             
    endif                                                                            
                                                                                     
    make                                                                                                                                                                                    
endfun


"저장후 컴파일해서 결과를 봅니다,

"저는 F10을 누르면 컴파일이 되고 아래에 결과가 나오게 설정했어요. 원하시는 키로 바꿔주세요.

map <F10> :ccl<CR>:w!<cr>:call Makefile_Run()<CR>:botright cwindow<CR><CR>








Bundle 'snipMate'

" 명령어 자동완성 기능입니다. c.vim은 복잡한(?)키를 입력해야하지만, 얘는 한방이에요...

" 단점이 있다면, 패턴이 그리 많지 않다는것... 그래서 c.vim과 같이 사용하길 추천합니다.

' 많이 사용하는 자동완성 타입은 다음과 같습니다.


-전처리기

 #include <stdio.h>

 inc  + <TAB>

 #include "Filename.h"

 Inc  + <TAB>

 #ifdef ~ #define ~ #endif

 Def  + <TAB>

 #define  def  + <TAB>
 #ifdef ~ #endif

 ifdef + <TAB>


- 제어, 반복문

 if

 if   + <TAB>

 else  el  + <TAB>
 do ~ while  do + <TAB>
 while  wh + <TAB>
 for  for + <TAB> (Loop), forr + <TAB> (Custom)


- 함수

 function

 fun + <TAB>, fund + <TAB>, main + <TAB>


- 선언

 typedef struct

 tds + <TAB>

 enum  tde + <TAB>


- 출력

 printf

 pr + <TAB>
 fprintf  fpr + <TAB>


전 snipMate/snippets/c.snippets 를 다음과 같이 약간 고쳐서 사용합니다. (2013/9/16)

데이터타입/디버그/기타 구문을 입맛에 맞게 추가/수정했습니다...

만약, 추가하실경우 snippet 이름이 겹치지 않게 주의하세요...




" 예> *.c 파일에서 자동완성한 모습.




Bundle 'tComment'

" 주석을 치는 확장기능. c,cpp,sh 등 다양한 포맷의 소스파일에 주석을 쉽게 칠수 있습니다.

" 주석을 해제할때도 "주석 체크"된 곳을 Block으로 잡고나서 "( Ctrl ) + ( _ ) + ( Ctrl ) + ( _ ) 하시면 해제 됩니다.

" 키가 복잡하다.. 하시는 분은 .vimrc에서 shortkey바꾸면 되겠죠.


Bundle 'surround.vim'

" 특정문자열을 태그/따옴표로 감싸는 기능. html태그 string형을 선언할때 유용하다.

" (명령모드에서) vi(블럭잡기) + w(단어) + s (sorround를 사용) + 감쌀 문자열 이런식으로 응용해서 사용합니다.

" 둘러싸는 기능 뿐만아니라, 삭제, 변경(작은따옴표를 큰따옴표로)도 가능합니다.


- 추가

Hello_world -> viws"

=> "Hello_world"


Hello_world ->viws'

=> 'Hello_world'


Hello_world -> viws[

=> [Hello_world]


Hello_world -> viws<head> ;viws< 하면 입력하시면 됩니다.

=> <head>Hello_world</head>


- 변경

"Hello_world"  -> cs"' # change surround '(작은따옴표) ->  '(큰따옴표)

=> 'Hello_world'


"Hello_world"  -> cs"' # change surround '(큰따옴표) ->  '(작따옴표)

=> 'Hello_world'


삭제

[Hello_world] -> ds[ # delete surround [ (중괄호)

Hello_world


Bundle 'ShowMarks'

" 왼쪽에 마크를 표시해 줍니다.



\mt   - ShowMarks 토글
\mo   - (마크가 되어있다면) ShowMarks를 계속 보여줍니다.
\mh   - 현재라인의 마크를 삭제합니다.
\ma   - 현재버퍼의 모든 마크를 삭제합니다.
\mm   - 현재라인에 마크를 답니다(마크번호는 사용가능한 다음 char,

예> 마크가 'b'로 되어있는 상태에서 \mm하면 현재라인에 마크를 'c'로 만듭니다.


~.vimrc


" 첫번째 라인 : 특정 타입을 무시합니다. h: Help, m : Non-modifiable, p : Preview, q : Quickfix, r : Readonly

" 두번째 라인 : 화면에 표시할 마크들을 표시합니다. defaults로 하면 일반적으로 쓰지 않는 마크들도 나와서 혼란...

let g:showmarks_ignore_type= "hprmq"
let g:showmarks_include= "abcdefhijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"


" 색깔을 변경합니다. 기본 xterm-256color로는 색깔 구별이 잘 되지 않더군요. 그래서 수정했습니다.

"l : lowcase, u : upcase, o : other, m: multiple

highlight ShowMarksHLl ctermfg=white ctermbg=blue
highlight ShowMarksHLu ctermfg=white ctermbg=blue
highlight ShowMarksHLo ctermfg=white ctermbg=blue
highlight ShowMarksHLm ctermfg=white ctermbg=blue


Bundle 'Align'

" 원하는데로 정렬을 지정할 수 있습니다

" http://www.drchip.org/astronaut/vim/align.html#Examples


Bundle 'Tagbar'

" taglist와 비슷한 확장기능인데... 그것보다 좀 더 좋아 보이네요.

" 사실 그전에 taglist로 적었다 이걸로 바꿨어요 ㅋㅋ



:TagbarOpen

:TagbarClose

:TagbarOpenAutoClose "Tagbar로 요소를 선택하면, 자동으로 Tagbar가 닫칩니다.

:TagbarSetFoldlevel n "최대 어느깊이n 까지 출력할까... 하는 옵션이라고 하네요. 전 C라 depth가 그리 깊게까지 못가봐서..

:TagbarToggle "Show/Hide 가 반복되는거죠 그냥...

:TagbarShowTag


~/.vimrc


let g:tagbar_left = 1 "0이면 오른쪽, 1이면 왼쪽에 출력

let g:tagbar_width = 30 "기본폭은 40입니다. 모니터가 작으면 줄여야 겠죠 ㅠ

let g:tagbar_autoclose = 1 "선택하면 자동으로 닫히게 하려면 1을 할당해 주세요

let g:tagbar_autofocus = 1 "커서가 이동하면 자동으로 선언된 위치로 갑니다 (?)


Bundle 'ctrlp.vim'

"프로젝트 디렉토리설정/파일이동을 쉽게 합니다

" 실행할떄는 :CtrlP, 창을 종료하려면, ESC를 두번 눌러 주시면 됩니다.



:CtrlP

:CtrlPDir

:CtrlPBufTag

:CtrlPBufTagAll

:CtrlPBuffer

:CtrlPChange


Bundle 'The-NERD-tree'

" 이번에도 디렉토리 이동을 쉽게 할 수 있는 확장기능 입니다.

" CtrlP보다 디렉토리 트리 이동이 가능합니다. 무었보다도 한눈에 트리가 보이니까 편하네요.

" 실행은 :NERDTree, 사용방법은 NERDTree창에 '?'를 입력하면 도움말을 보실수 있습니다. 

" 그래도 뭐 간단히 아래에 사용법 추가.

" hjkl로 방향이동

"기본적인 사용법은 다음과 같습니다

" 더 확실한 도움말을 원하시면, NERDTree에서 ?를 입력해 보세요.

? : 도움말창 토글

q : NERDTree 종료


- 디렉토리 이동

u : 상위 디렉토리로 이동

U : 상위 디렉토리로 이동, 모든 디렉토리리스트를 접음.

c : 선택된 디렉토의 하위 리스트를 새창을 열어서 보여줍니다.

C : 현재 선택된 디렉토리를 ROOT디렉토리로 두기(chroot)

cd : 현재 디렉토리명을 보여줌 (pwd)

P : 최상위 디렉토리(ROOT)로 이동

p : 부모 디렉토리로 이동

K : 첫번째 자식디렉토리로 이동

J : 마지막 자식디렉토리로 이동


- 새로고침

r : 현재 위치한 디렉토리를 새로고침

R : 전체 새로 고침


- 현재 선택된것이 디렉토리라면

o : 디렉토리 노드를 열기(보여주기)/접기

O : 모든 하위 디렉토리를 열기(보여주기)

X : 열린 모든 하위 디렉토리를 닫기(O와 반대)


- 현재 선택된것이 파일이라면

o : 미리보기 윈도우를 띄워서 미리보기

go : 미리보기

t : 새탭으로 열기

i : 수평분할해서 보여줍니다.

gi : 미리보기 윈도우를 사용하여 수평분할해서 보여줍니다.

s : 수직분할해서 보여줍니다.

gs : 미리보기 윈도루르 사용하여 수직분할해서 보여줍니다.


:NERDTreeFromBookmark "Bookmarkname" "북마크된걸 최상위 루트로 해서 엽니다

:NERDTreeToggle "Tagbar과 비슷한거죠머.. 토글기능. 없으면 나오게 하고, 이미 있으면 없애고..

:NERDTreeMirror "다른탭에 있는 NERDTree를 현재 탭과 공유하는 기능이라고 하는데... 사용하지 않아서 전 잘 모르겠어용

:NERDTreeClose

:NERDTreeFind "현재 열려있는 파일의 디렉토리의 트리를 봅니다. 그러니까, 현재디렉토리가 /tmp라면 새로띄우는 NERDTree의 Root는 /tmp 가 된다... 이말이죠.


~/.vimrc

let g:NERDChristmasTree = 1 "colorful 효과
let g:NERDTreeAutoCenter = 1
let g:NERDTreeChDirMode = 1
let g:NERDTreeHighlightCursorline = 1 "현재 커서 위치를 하일라이팅합니다. 기본값은 1

let g:NERDTreeSortOrder=['\.c$', '\.h$', '*'] "*.c, *.h, 기타파일 순으로 정렬합니다.

let g:NERDTreeBookmarksFile = ~/.NERDTreeBookmarks "북마크 파일을 지정합니다. 이값은 디폴트 값이에요.

let g:NERDTreeIgnore = ['\.vim$', '\~$'] "*.vim파일과 끝이'~'로 끝나는 파일들은 보여주지 않습니다.

let g:lNERDTreeWinSize = 20 "NERDTree의 폭을 설정합니다.

let g:NERDTreeMinimalUI = 1 "NERDTree에서 (위에뜨는) help/bookmark 메세지를 보여주지 않습니다.


" let g:NERDTreeShowHidden = 1 "숨김파일을 보여준다고 합니다.

" let g:NERDTreeShowLineNumbers=1 "라인을 보여줍니다

" let g:NERDTreeShowFiles = 0 "0이면 파일을 보여주지 않고, 디렉토리만 보여줍니다.

" let g:NERDTreeWinPos = right "이렇게 설정하면 오른쪽에 NERDTree가 나타납니다.

" 이외에 더 자세한건 :help NERDTree


Bundle 'echofunc.vim'

" 커서에 위치해 있는 define/변수가 정의된 형태를 상태표시줄에 보여준다

" 딱히 추가적으로 키 누르고 그런건 없습니다.

" 대신 "$ctags -R --fields=+lS ." 같이 해서 미리 태그를 만들어 둬야겠지요...

" 근데 옜날엔 잘 됬는데 이제 이 확장기능이 맛이 갔네요 아놔... 그래서 스샷은 딴걸로 대체 ㅠ.



~/.vimrc


let g:EchoFuncLangsUsed = ["java","cpp","c"] "적용할 언어

let g:EchoFuncPathMappingEnabled = 1 "특수디렉토리(홈디렉토리 하위파일들)에 있으면 파일경로를 자동으로 단축

let g:EchoFuncKeyNext = '<C-+>' "다음 태그

let g:EchoFuncKeyPrev = '<C-->' "이전 태그

"set statusline+=%{EchoFuncGetStatusLine()}

"let EchoFuncShowOnStatus = 1


Bundle 'myprojects'


ref :

https://github.com/gmarik/vundle

http://kldp.org/node/125263


ps; 와 이거 작성하는데 시간 무지하게 오래 걸리네요...

ps2; 그래도 그림이 있으니깐 훨씬 이해하기 쉬운듯...

ps3; 티스토리 글작성기능은 처음부터 끝까지 병신이네요.. 이렇게 에디트가 불편해서 어디 자주 포스팅 하겠나...?

ps4; 원래 완벽하게 다 포스팅 다해놓은 다음에 공개하려고 했는데, 그러다간 언제 할지 몰라서 그냥 이정도로 완성할래요 ㅠ


Trackback 0 Comment 6
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2012.12.01 20:07 신고 address edit & del reply

    워;;;; 천재님!!!!
    저도 이 Bundle 정리하려고 맘만 먹고 차일피일 미루고 있었는데
    먼저 정리하셨네요

    작성하신 플러그인중에 NERD Tree는 저도 사용중인데
    저는 F7키에 매핑해서 사용중이에요

    제가 사용하는 플러그인들은 전부 펑션키에 매핑해서 사용중 ^^;;;

    • lowid 2012.12.01 21:23 address edit & del

      맵핑은 다음과 같이 해놓고 있어요.
      " <F1> - vim help
      " <F2> - for screen
      map <F3> :CtrlP<CR>
      map <F4> :<ESC>v]}zf
      map <F5> :YRShow<CR>
      map <F8> :TagbarToggle<CR>
      map <F9> :NERDTreeToggle<CR>
      map <F10> :ccl<CR>:w!<cr>:CALL Makefile_Run()<CR>cwindow<CR>
      map <F11> :cp<CR> "cscope-quick-fix
      map <F12> :cn<CR> "cscope-quick-fix

      그런데 아직 익숙하지 않아서... 역시나 안쓰던키들은 했갈리더구만요 ㅋ.

  2. Favicon of https://fluxbox.tistory.com BlogIcon 猫한 보스코 2012.12.03 09:13 신고 address edit & del reply

    흰 거는 여백이고 검은 건 글씨인데 뭔말인지 도무지 알 수가 없군여. (_ _ )
    말풍선은 뭘로 넣은 거에여~

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2012.12.04 02:15 신고 address edit & del

      대충 뭔말하는건진 아시면서~
      말풍선은.. 글쓰기에서 사진 올릴때 있잖아여.. (Daum포토 업로더)
      거기 위에 툴바(?) 잘 보면 말풍선 있어여... 거기서 넣으시면 됩니다.
      ps; 요즘에 IRC 안오시나봐요? ㅠ,

  3. Favicon of https://gomorego.tistory.com BlogIcon 꼬막형 2013.09.30 04:31 신고 address edit & del reply

    vi editor에 대해 이리저리 궁리하다가 lowid님 블로그까지 오게 되었네요...
    정리한 내용으로 공부 잘하겠습니다. 고맙습니다.

    • Favicon of https://lowid.tistory.com BlogIcon Lowid 2014.03.16 19:08 신고 address edit & del

      도움이 되었다니 제가 다 기쁘네요!

Linux Kernel 3.x.x 에서 Virtualbox돌릴시 생기는 문제점 해결

아.. 드디어 몇달간 미루던 문제를 해결했습니다..


아치에서 virtualbox안돌아가는 문제....

아마 아치리눅스에서 기본적으로 제공하는 커널을 사용한다면, 별 문제 없었겠지만

(한국 아치포럼 사이트가 조용했기 때문에... 뭐 그마져도 지금은 닫혀있지만!!!)

저처럼 혼자서 괜히 쓸데없이 바닐라 커널가지고 컴파일한 사람은 말이에요...

여튼 증상은 이렇습니다... "starting virtual machine..." 이 메세지가 나오다가, 잠시후


<바로  이런 거지 같은 상황!!!>


가상터미널(ctrl + alt F7) 같은 화면으로 점프, 그리고 거기서 virtualbox 에러메세지가 dump 됩니다.



<<10월 16일 내용 추가>>

더 근본적인 해결방법을 찾았습니다...

https://forums.virtualbox.org/viewtopic.php?f=7&t=50960&start=15#


아치에선 다음과 같이 적용하면 될거 같네요.

1, 일단 dkms에 virtualbox module이 등록되어있다면, 제거

# dkms remove vboxhost/$(pacman -Q virtualbox|awk {'print $2'}|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')


2, virtualbox-host-source패키지의 헤더파일을 편집합니다.

# vi "$(yaourt -Ql virtualbox-host-source | grep 'vboxdrv/include/iprt/cdefs.h' | cut -d ' ' -f2-)"


3, 헤더파일에서 다음을 찾아서 회색부분을 주석처리하고 검은색 부분만 남겨둡니다. (builtin_expect로 검색하시면 편합니다)

/*
#if defined(__GNUC__)
# if __GNUC__ >= 3 && !defined(FORTIFY_RUNNING)
#  define RT_LIKELY(expr)       __builtin_expect(!!(expr), 1)
#  define RT_UNLIKELY(expr)     __builtin_expect(!!(expr), 0)
# else
#  define RT_LIKELY(expr)       (expr)
#  define RT_UNLIKELY(expr)     (expr)
# endif
#else  */

# define RT_LIKELY(expr)        (expr)
# define RT_UNLIKELY(expr)      (expr)

//#endif


4, dkms에 재등록

# dkms install vboxhost/$(pacman -Q virtualbox|awk {'print $2'}|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')


5, Reboot (아마 커널패닉이 일어날정도면 rmmod로 모듈제거도 제대로 안될 확률이 높으므로... 그냥 재부팅 해주세요)


정상적으로 잘 작동하는걸 확인했습니다~!


근데 이렇게하면 패키지버전업 + 모듈컴파일 상황이 겹칠경우 문제가 발생하겠네요 으음..

Trackback 0 Comment 8
  1. Favicon of https://fluxbox.tistory.com BlogIcon 猫한 보스코 2012.06.07 20:33 신고 address edit & del reply

    윈도즈 쓰세여~
    언제나 심심하지 않게 새로운 삽질거리를 제공해주는 니눅스!
    니눅스에서 맨날 문제가 터지는 건 서버 관리 예행 연습용이라능(...)

    • lowid 2012.06.08 12:35 address edit & del

      커스터마이징이 쉬워서 리누기쓰는거져...
      써왔던 정도 있고...
      단지 그것뿐... 편의성같은거 신경썼으면 진작 리누기 버렸죠 ㅋㅋㅋ
      안그래도 심심하면 패키지가 문제있어서 맛이 자주가는데... 그렇데고 데뱡같은건 너무 심심하고 ㅋㅋㅋ

  2. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2012.06.10 01:19 신고 address edit & del reply

    뭐 이렇게 어렵게 쓰시나요?
    그냥 편한 우분투 쓰시라니깐요 ㅋ
    아니면 데뱡 스퀴즈도 괜찮구요

    • lowid 2012.06.10 01:59 address edit & del

      삽질해논게 아까워서 그냥 이렇게 씁니다 ㅠㅠ...

  3. Favicon of https://fluxbox.tistory.com BlogIcon 猫한 보스코 2012.06.22 21:37 신고 address edit & del reply

    님하 요즘 IRC에 안 보이시네욤. ㅎㅎ
    그런 그렇구 아취 리눅스 삽질 많나여? ㅜㅜ
    컴 한 대 남는 거 생기면 아취 함 만져볼까 생각중인뎅....

    • lowid 2012.06.23 14:14 address edit & del

      아치야 뭐 위키보고 만지작 하면 금방해욤...
      문제는 하도 변화무쌍해서 대쳐하기가 쉽지 않다는게 ㅠ
      -어? 이상하네요... 저 요즘에두 IRC상주중인데 ㅋㅋ.. 심심하면 불르세여.. 아아우 고침 ㅠㅠ

  4. Favicon of https://heizelnut.tistory.com BlogIcon Heizelnut 2012.07.31 16:36 신고 address edit & del reply

    이야..... 정말 lowid님 데탑 화면은 볼때마다 감탄이.ㅋㅋㅋ

    • lowid 2012.08.09 09:04 address edit & del

      할줄 아는건 이정도 밖에 없답니다 ㅠ
      밥먹고 사는데는 별 지장없는것들이죠 ㅠㅠ

슈퍼패미콤 에뮬레이터로 고전게임 해보기!

오랜만에 테일즈오브판타지아 op듣고나서, 오랫만에 한번 하고 싶더라고요...


한글화도 옛날에 되었겠다... 하다가 만 기억도 있어서...


그래서 한번 돌려봤습니다..


zsnes를 처음에 깔아서 해봤는데 계속 오류(Assertion error...)가 나더군요..


에뮬레이터 자체가 안돌아가니 방법이 있습니까.. 쩝...


여튼 snes9x-gtk를 설치해서 완료...


#pacman -S snes9x-gtk



어짜피 gtk라 설치한 이후로는 윈도와 별 차이가 없음...


단지 문제가 있다면...


키보드 설정이 안되어 있어서 따로 설정들 더 해야되요.


Menu->Option->Preferences


보통 기본적으로 키는 자동적으로 잡혀있던데... 머어 별수 있나요 안되있으면 해야지..


취향에 따라서 방향키와 명령키를 정해줍니다.



그 다음엔 사운드 설정..


"Sound driver"에서 자기가 쓰는 사운드출력을 정해줍니다...


이정도는 자동으로 감지할수도 있을텐데 왜 이렇게 해놨을까요...



그럼 이제 롬 파일을 열어서 게임 시작.


세이브랑 로드도 잘 됩니다... 이번에야 말로 끝까지 가봐야지...


그리고 테오판 끝난다음에 천지창조도 마무리 해야겠네요~




ps1; 테오판 롬파일을 올리려고 했는데, 이상하게 업로드는 했는데 링크가 안생기네여;;

용량도 5메가도 안하는데 왜이래... 게다가 압축파일인데 -_-... 어쩔수 없네요... 포털에서 검색해서 받아주세요 ㅜㅜ...


ps2; 한글화 하는 툴은 여기서 받으세요...


ps3; 참고로 패치적용할때 그냥 wine으로 돌리면 됩니다. 따로 재부팅할 필요 없어요...

Trackback 0 Comment 4
  1. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2012.06.03 18:44 신고 address edit & del reply

    으허허허허 추억의 도트 게임이군요 ㅋㅋ

    • lowid 2012.06.05 20:54 address edit & del

      넹...
      남들은 디아3돌릴때 전 이거해요 ㅋ

  2. Favicon of https://fluxbox.tistory.com BlogIcon 猫한 보스코 2012.06.07 20:34 신고 address edit & del reply

    전 예전부터 익숙한 zsnes.
    슈패 에뮬이 한글화된 게 많아서 재밌져.

    • lowid 2012.06.08 12:36 address edit & del

      ㅇㅇ 네 마자요...
      에초에 저것도 한글화 안되어 있었으면 시작도 안했을듯...

삭제된 파일 파일 복구기

이틀전에 명령어를 잘못쳐서(...) 파일 몇십개가 날라간 이유로. 간단한?  자세한 복구기를 남겨둡니다.


혹시 나중에나마, 누군가 ext에서 파일복구를 할 사람이 있을떄, 조금이라도 참고가 가능하게요.


자 그럼 시작 하겠습니다.


1, 맨탈 붕괴의 시작, 잘못된 명령어 수행


들어가기 전에,,, 제 alias는 이렇게 설정되어 있었습니다...

alias rm='~/bin/script/remove.sh'

alias rrm='/bin/rm -r'


문제는 이 명령을 /tmp에서 써야하는데, 홈에서 써버렸어...

rrm ./*


그래서 홈디렉토리의 파일의 일부가 날아갔습니다...


실수로 삭제 방지한다고 alias까지 만들어놨는데 왜 전 그거 안쓰고 그냥 지웠을까요


etc디렉토리는 복구가 되어있어서 다행이였는데,


문제는 작성한 스크립트를 잔뜩 박아둔 bin디렉토리의 스크립트의 대부분이 날라갔다는 사실입니다 ㅠㅠ..


그 뒤로는.... 다들 그러시겠습니다만, 맨붕....


2, 복구 part1 - 급한대로 일단 막고...아치에서 복구 시도!

 

이후에 실수로 한번 재부팅을 해버렸습니다 ㅠ..


그래서 그런지 이후에 debugfs로 복구하려니까 안되더군요... 삭제파일 리스트가 안떠!!!

(그전에 ext4는  debugfs로 복구하기 어렵다는 말도 들은거 같아서 조금이라도 위안이 되었죠!!!)


바로 복구를 했어야 하는데... 뭐 안타깝지만. 


fstab에서 홈 디렉토리를 마운트 못하게 수정하고

 # /dev/sda3                       /home                   ext4    defaults                    0           2


늦기전에 dd로 일단 홈파티션을 이미지를 떴습니다.

(root로 dd를 쓸때는 항상 조심합니다... 복구하려다 있는것도 다 털릴수 있음...)

#dd if=/dev/sda3 of=/data/exData/2012_05_Home.img bs=100M  #저 같은경우는 sda3니까 이렇게 했습니다. 조심!


휴 이미지 용량만 30기가네요 에휴....


혹시 테이블에 정보가 남아있을지도 모르니까... 시도는 해보죠! extundelete로 복구 시도,

#pacman -S extundelete


간략히 사용법을 적어두자면, 다음과 같습니다.

#extundelete 'target device' option

(예>

#extundelete /dev/sda3 --restore-all

#extundelete /dev/sda3 --restore-file /lowid/.bashrc # path는 '/'기준이 아니라, 대상장치의 절대경로 입니다!

#extundelete /dev/sda3 --restore-directory /lowid/bin )


--restore-ino : 아이노드로 찾습니다... 고급옵션(?)입니다... 저같은 경우 복잡해서 그냥 관뒀음.

--resotre-all  : 장치 전체에서 파일을 복구해 냅니다. 당근 시간이 오래 걸립니다.

--resotre-file 'path' : 파일경로를 정확하게 알고 계신경우라면, 이 방법이 제일 낫겠죠?

--resotre-directory 'path'  : 역시나 이 방법이 가장 무난하긴 합니다. 큰 디렉토리만 아니라면요.


뻔한 이야기지만, 더 자세한건 man페이지를 보세요... 뭐 어지간한 경우, 위 옵션으로 아마 해결이 가능하겠지만.


아치에서 해보니까, --resotore-all은 복구가 하나도 안되고,

 

뒤에 --resotre-file, --resotore-directory로 하니깐 libext2인가.. 갸가 segmentaion fault먹고 죽어버렸어요 ㅠㅠ..


에잇 망했다... 이러고 일단 다른툴을 찾아서 해 보기로 했습니다.

 

이번엔 photorec을 이용해 보죠.

(설치법이야 구태여 적을 필요 없겠죠? 배포판 마다 다르기도 하고, 아치에서 하는건 쉽기도 하니까)


얘도 사용하기 쉽습니다.. 걍 엔터 엔터 하면 되요...


그래도 모르니까. 일단 스크린샷 첨부해서 설명하죠

처음에 딱 하고 뜨는 화면입니다. 원하는 "디스크"를 선택해 주세요...



자! 이제 해당 디스크의 "파티션"을 보여줍니다. 복구를 원하는 파티션을 선택 해 주세요!

sdXY 형식이 아니기 때문에 불편하긴 하지만... 순서와 용량으로 대충 어림짐작(...)이 가능합니다.


선택한 "디스크"의 "파티션"을 선택해 줍니다.

저야 ext4니까  "ext2/ext3"를 선택하겠습니다. 뭐 어지간한 리눅스에는 다 ext파티션이니까...



이제 복구 타입을 설정할때 입니다. "전체다" 복구하려면 "whole" 그게 아니라 선택적 복구를 하려면 "Free"를 선택합니다.

...라고 하는게 정석이긴 한데, 전 ext4라서 그런가... free를 눌러도 그냥 전체다 복구 하더라고요...


복구된 파일이 저장될 위치를 지정해 줍니다. 용량여유가 있는 경로를 선택하시길 추천합니다.

(제가 30긱 하드를 복구했는데... 복구된 파일 전체 크기가 한 2긱되던거 같습니다.)

 

이후, 복구되는 과정이 시작됩니다.

 

photorec는 일단 복구하는 파일의 결과를 실시간으로 보여주는게 마음에 들더군요. *.txt 몇개, *.torrent 몇개... 이런식 입니다.

ps; 중간에 파일 디스크 타입? 파티션 타입? 인가... 설정하라고 나올떄도 있는데, 이때는 중간에 Linux를 선택 하시면 될겁니다.


음... 복구 다 하고 나서, 복구완료된 파일을 보았는데...

 

제가 필요한건 "수천개 중에" "1개" 복구가 되더군요 아놔...


(지운지 오래된 파일들만 왕창 복구해 내네요;; 쓸데없는 torrent파일, 야짤, 로그파일 이딴거나...)

결과적으로 그런거죠 "실패했다"


그리고 이어지는 2차 멘붕.


3, 아까 segmentaion fault가 원인일거야! 아치에서 안되면 우분투에서 해보자!!!


옜날 생각도 났겠다... 오랬만에 붕투체험도 해볼겸해서, 12.04(05인가;;) 시디를 굽고 라이브CD로 함들어가 봤습니다.


이야 ODD라 그런지, 원래 무거운건지... 속도 무지하게 느리군요..버버버버벜 아 이거 내 타입 아냐!!


그런 우여곡절을 겪은 이후, 바탕화면에 입성!!!

이미지 출저: http://commons.wikimedia.org/wiki/Image:Ubuntu_12.04.png?uselang=ko


아 근데 이거 "유니티"인가 적응 진짜 안되네요? 적어도 제가 쓰기에는 진짜 불편한 인터페이스...


아무리 생각해도 이런건 아니에요.. 컴퓨터가 무슨 아이패드나 넷북도 아니고...


터미널은 어디 쳐박혔는지 찾을수도 없고!!! 시냅틱도 어디 쳐박혀 있는지 찾을수 없고!!!


(알고보니 터미널은 오른쪽 가젯(?)의 "우분투마크"를 클릭해서 "검색"해서 실행해야 하더군요


야! 아무리 그래도 터미널은 사용하기 쉽게 해 놔야하는거 아니냐!!! *nix의 생명은 터미널이란 말이다!!!! )


시냅틱도 찾고찾다 안되서 저기 오른쪽 가젯의 "쇼핑백" 클릭해서 시냅틱 깔았습니다... 이후에 exundelete, photorec도 설치완료.


서문이 너무 길었네요.. 이제 복구 시작...


저같은경우 extundelete로 복구시도를 다시 해봤는데 결과는 마찬가지더군요. 혹시해서 아까 --restore-directory 옵션으로


시도도 해봤는데, segmentation fault 먹지 않는다는 사실만 제외하면 똑같았습니다.. 네.. 복구가 안되었다는거죠.. 하나도...


photorec의 경우 복구하다가 시스템이 맛탱이가 가버렸습니다.. 뭐 별수 있습니까? 걍제종료 해야지...


후... 뭔가요 이번 파트는... 그냥 우분투 체험하러 들어돈것 밖에 안되는듯.. 결론은 모두 실패.


3차 멘붕.


4, 수동복구...


아까 이미지 뜬파일을 통해서 수동으로 복구를 시도해 보았습니다.


혹시해서 winhex로 이미지 뜬걸 열고... 문자열을 검색...

 

 

당연하지만, 삭제된 파일이지만 검색은 되죠...네... 어짜피 위에 테이블(?)만 지워진 상태고 블록은 그대로 일테니...


근데 더 신기한건, 검색된 문자열(plain text)의 앞뒤가 명확하다는겁니다 !!!!!


100%로 맞아 떨어지지는 않았지만, 파일의 시작,끝이 거의 구분이 간다는 거죠. 

 


 

와 진짜로 신난다! 가능성이 있어! 


그리고 옛 기억(?)을 더듬어서 30긱 이미지에서 일일이 문자열을 검색하기 시작...


나옵니다! 나와! 파일이 파일이~!!! 그래서 일일이 검색하고, 파일 앞뒤를 찾고, 범위를 선택해서 드래그 해서 복원을 했습니다..


일부 파일의 경우 디스크 전체에 한번 밖에 없는경우고 있었지만, 이런경우는 별로 없었고 (....)


파일하나(꼭 그 파일에서만 있음직할만, 즉 진짜 디스크에서 딱 1개 들어가 있다고 확신을 할만한... 그런 문자열 선택...

 

물론 파일이 수십개라 다 정확한 문자열을 정하기 좀 힘듭니다.)검색하면, 대상파일과 비슷한

 

(정확하게 말하면, 제가 대상파일을 편집할때 backup본 만들어 놨던)파일이 수두룩 하게 검색이 됩니다.


보통 10개이상~20개 정도였고, . 특히 편집을 자주한 파일을 보면, 덤프한 파일이 50개가 넘어갔어요.


그래도 별 수 있습니까.... 그 50개 덤프뜬 파일 다시 분석해서 가장 "최근인듯한" 파일 골르는 수밖에...


보통 용량순으로 고르면 되더군요.. 가장 최신인 파일일수록 예외처리를 많이 해 놨을테니까...


(물론 아닌경우도 있어서 캐고생 했습죠 데헷...)


그렇게 하루종일 검색, 덤프, 선택, 과정을 거쳐 복원을 완료 했습니다.


이후 멘탈도 다시 불완전하게 나마 복원이 되었습니다 (...)


일단 복원을 시키긴 했는데, 모든 스크립트가 제대로 작동하는진 좀더 지켜봐야 할거 같네요...


마지막으로 요약하자면.. 수동 복구가 가능했던 이유는...

1. 내가 작성한 파일이라서 내부가 어떻게 되어있는지 대충 알고 있었음.

2, 스크립트 파일이라서 plain text였다.

3, 파일 크기가 거의다 10k 내외였다.

4, 3번때문인지, ext의 특성인진 몰라도, 파일의 단편화가 일어나지 않았다.

(뭐 확실히 FAT,NTFS였다면 클러스터 크기가 작아서 복구가 불가능했을지도요?)

5, 구별이 쉽게 파일의 앞,뒤가 '00'으로 구별되어 있었다.


입니다... 여러분도 삽질 조심하세요 ㅠㅠ.. 나처럼 이러지 말고...




ps; 티스토리, 파이어폭스 콤비가 포스팅 또 날려먹었네요.. 와 신난다!

한 30줄 정도 썼었는데 제길... 자동저장도 안되있네.. 씁...


ps2; 와 또 날려먹었다!!! 이번엔 뒷부분 한 10줄 날아감.. 아 대체 왜이럴까요? 뭐가 문제일까?

 

ps3; 은근히 포스팅 작성하는데 시간 오래걸리네요.. 윈도랑 왔다갔다 하면서 작성해서 그런가;;;

Trackback 0 Comment 4
  1. Favicon of https://fluxbox.tistory.com BlogIcon 猫한 보스코 2012.05.26 13:52 신고 address edit & del reply

    윈도즈 쓰라니깐여 ㄲㄲㄲ
    는 넝담이고 캐고생하셨음여.ㅜㅜ

    • lowid 2012.05.26 16:31 address edit & del

      넹 ㅠㅠ...
      복구 넘 힘들어요...

  2. Favicon of https://khmirage.tistory.com BlogIcon 환상경 2012.05.26 23:33 신고 address edit & del reply

    워... 천재
    전 그냥 운명이겠거니 하고 포기해버리는데 ㄷ ㄷ ㄷ

    • lowid 2012.05.27 23:05 address edit & del

      저도 그럴려고 했는데, 이번만큼은 차마... 그럴수가 없었어요 삽질한게 너무 아까워서...ㅋㅋ

prev 1 2 3 4 5 ··· 17 next