Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Vim 강의

2,066 views

Published on

28/05/2015 vim study silde

Published in: Technology

Vim 강의

  1. 1. Vi / Vim ICEWALL 오효근
  2. 2. 발표자? • 잉여잉여한 대학생 • 걍 간지나서 vim을 사용하기 시작 • dd 하나 때문에 IDE를 사용을 못 해먹겠는 체질이 됨 • vim을 쓰겠다는 도전적인 불쌍한 사람들이 많아서 발표
  3. 3. Why Vim?
  4. 4. Learning Curve
  5. 5. Learning Curve Vi http://commons.wikimedia.org/wiki/File:Upshot-Knothole_Climax_001.jpg
  6. 6. Learning Curve
  7. 7. ADM3A http://ko.wikipedia.org/wiki/Vi#/media/File:KB_Terminal_ADM3A.svg
  8. 8. ADM3A • ESC 위치가 지금 키보드와 달리 Tab에 위치함 • Ctrl의 경우 Caps Lock에 있음 (emacs가 이걸 이용) • 방향키가 존재 안 함 = hjkl을 방향키처럼 사용
  9. 9. Keyboard? • 현재 몇몇 키보드는 이 형식을 지원하기도 함 • 미니 키보드 형식으로 ESC가 자판에 가깝게 • Caps Lock <-> Ctrl 교체 등등 지원
  10. 10. 태초에 도스창이 있었다 • GUI 아님 / Command Line Interface (== 도스창) • 마우스가 없었음 • 쓸 수 있는 건 키보드 뿐
  11. 11. 태초에 터미널이 있었다 • GUI 아님 / Command Line Interface (== 터미널) • 마우스가 없었음 • 쓸 수 있는 건 키보드 뿐
  12. 12. 태초에 터미널이 있었다 • OS X / Linux 모두 기본적으로 vi 혹은 vim이 탑재 • 터미널을 열고 vi 라고 쳐 보면 바로 열림 • 이 상태 vs 메모장 하면 100% 메모장이 승리함 (진짜 중요)
  13. 13. 태초에 터미널이 있었다 • 왜 쓰는지 알게 되는 시점까지 엄청 오래걸림 • vim/터미널은 쓰면 쓸 수록 배울게 많은 편 • 발표자도 모르는 기능 산더미처럼 많음
  14. 14. 태초에 터미널이 있었다 • 취향도 많이 타는 편 • IDE와는 상당히 다른 모습을 보여줌 • 근데, Visual Studio에서 vi 명령어 플러그인이 존재 함
  15. 15. Vi / Vim을 써볼까요?
  16. 16. OS X는요? • 팩키지 관리자 깔기 ( Homebrew / Macports / Fink) • iTerm2 깐 후, 팩키지 관리자로 MacVim 깔기 • vi ~/.profile 로 터미널 프로파일 수정 (잠시만 배우지도 않은 vi를?)
  17. 17. OS X는요? • alias vi=“mvim -v” • alias vim=“mvim -v” • 이 두 가지 ~/.profile에 추가해두고 시작하는게 편함 (권장)
  18. 18. OS X는요? • 정말 귀찮다면 기본 터미널에 기본 vi 쓰면 됨 • 맥 사고 Macvim 몰라서 발표자도 생으로 vi 6개월 썼음 • 주변에 이런거 알려주는 사람이 하나도 없으면 이럼 ㅠㅠ
  19. 19. Linux는요? • 터미널을 연다 • vi를 친다 • 끝
  20. 20. Windows는요? • gvim을 깐다 (www.vim.org) = 변태 • VM에 리눅스를 올리고 vim을 쓴다 = 왕변태 • 리눅스 서버를 구축하고 SSH로 접속해서 쓴다 = 초변태
  21. 21. Windows는요? • Visual Studio에 익숙하다면 VsVim을 쓰는 것도 방법 • https://visualstudiogallery.msdn.microsoft.com/ 59ca71b3-a4a3-46ca-8fe1-0e90e3f79329
  22. 22. Vi를 구성하는 세 모드들
  23. 23. 세 모드들 Command Mode Bottom-Line Mode Insert Mode ESC ESC i o a s: /
  24. 24. 세 모드들 • Command Mode : 간단한 명령 입력 • Bottom-Line Mode : 복잡한 명령 입력 • Insert Mode : 편집 모드 (메모장이랑 같음)
  25. 25. 세 모드들 • 사실 복잡해 보이지만 간단함 • 편집 중 ESC -> 명령 실행 -> ioas로 편집 모드로 진입 • -> 다시 편집 시작 -> ESC -> 명령 실행 -> (무한반복)
  26. 26. 세 모드들 명령 편집 ioas ESC
  27. 27. Command Mode
  28. 28. Command Mode https://kldp.org/node/102947
  29. 29. Command Mode
  30. 30. Command Mode • 대부분의 명령은 조합을 통해서 만들어짐 • 의외로 직관적이고 간편하고 효율적임 • 그러나, 다 외워야한다능
  31. 31. Command Mode • 주로 쓰는 것들은 한정적임 (그것만 알아도 되긴 함) ✴ 편집모드로 들어가는 키 - i, o, a, s ✴ 각종 텍스트를 주무르는 명령어들
  32. 32. to Insert Mode
  33. 33. to Insert Mode • i : 제일 많이 쓸 키, 커서부터 바로 쓰기 • o : 다음 라인에 새로 쓰기 • a : 뒤에 덧붙여서 쓰기 • s : 삭제하고 쓰기
  34. 34. to Insert Mode • I : 라인 처음부터 쓰기 • O : 이전 라인에 새로 쓰기 • A : 줄 끝에 덧붙이기 • S : 줄을 날려버리고 처음부터 쓰기 (쓸 데 꽤 많음)
  35. 35. ESC to command mode
  36. 36. 주로 쓰는 것들 • dd = 라인 삭제 • gg = 맨 첫 줄로 • G = 맨 끝 줄로 • > , < = 들여쓰기 한 칸 넣기, 한 칸 빼기
  37. 37. 주로 쓰는 것들 • u = 실행취소 • yy = 줄 복사 • p = 붙여넣기 • = = 들여쓰기 자동 정렬
  38. 38. 주로 쓰는 것들 • 여기서 주목해야할 것은 ✴ shift와의 조합 ✴ 숫자와의 조합 ✴ 다른 명령어와 조합
  39. 39. 주로 쓰는 것들 • Shift와 사용할 경우? • 뭔가 부가적인 기능이나 방향이 반전 되 있음 • 명령어 외우기 시작하면서 익숙해짐 • o <-> O i <-> I gg <-> G
  40. 40. 주로 쓰는 것들 • 숫자 + 단축키 = 숫자 만큼 단축키 실행 • 5gg = 맨 위에서 5칸 아래로 커서 이동 • 5dd = 5줄 삭제 • 5> = 5줄 1칸 들여쓰기
  41. 41. 주로 쓰는 것들 • vim쓰는 주된 이유 • 여러 명령어와 조합이 가능하다는 게 장점 • 숫자 + 명령어1 + 명령어2 이런식으로 조합 • 뒤에 나올 bottom-line-mode에서도 동일하게 적용
  42. 42. 주로 쓰는 것들 • d = 삭제, w = 단어 • dw = 단어 삭제 (delete word) • gg = 맨 처음줄로, = = 자동 들여쓰기, G = 맨 끝줄로 • gg=G = 처음부터 끝까지 다시 자동 들여쓰기
  43. 43. :(command)
  44. 44. 황무지를 개척하자 • :set nu = 라인 넘버 • :set ai = 엔터 후 들여쓰기 • :colorscheme (scheme name) = 컬러스킴 설정 • :syntax on = 문법 강조 키기
  45. 45. 황무지를 개척하자 • :set ts=4 = 탭 사이즈 4로 • :set autoindent = 자동 들여쓰기 키기 • :set smartindent = 자동 들여쓰기 키기 (2) • :set shiftwidth=4 = 자동 들여쓰기 간격 4로
  46. 46. 저장을 해야지! • :w = write • :q = quit • :wq = write & quit • :q! = quit (force)
  47. 47. 저장을 해야지! • :x == :wq • :o filename = open filename • ZZ = 저장 후 나가기 • ZQ = 저장 없이 나가기
  48. 48. 쓸만한 것들? • :sh = 콘솔로 다시 넘어감, exit 치면 다시 vi로 옴 • :!(콘솔 명령어) = 콘솔 명령어 실행 • :!ls = ls를 실행 시키고 보여줌줌 • :r!(콘솔 명령어) = 콘솔 명령어 실행 후 출력을 vi에 삽입
  49. 49. 쓸만한 것들? • :tabnew = 새로운 탭 열기, :o 와 비슷함 • :tabn [n] = n만큼 다음 탭으로 • :tabp [n] = n만큼 이전 탭으로 • :tabs = 탭들 목록 보여주기
  50. 50. Visual Mode
  51. 51. Visual Mode • 그런거 존재 하나요? • 쓸 수는 있지만 그렇게 권장을 안 하는 모드 • 마우스 클릭 후 드래그 같은게 비주얼 모드에서 작동
  52. 52. Color Scheme
  53. 53. Color Scheme
  54. 54. Color Scheme
  55. 55. Color Scheme • 간단하게 말하면 syntax highlight 설정 • /colors 폴더 아래에 컬러 스킴 .vim 파일을 넣으면 됨 • 자작도 가능하나 걍 다운 받는게 정신건강상 좋음
  56. 56. Color Scheme • OS X의 경우 터미널 컬러 프리셋에 따라서 색 왜곡 • (Linux는 확인 안 해봄) • git에 돌아다니고 있는 컬러 스킴을 사용할 것!
  57. 57. Color Scheme • http://cocopon.me/app/vim-color-gallery/ • http://vimcolors.com/ • https://code.google.com/p/vimcolorschemetest/ (비추)
  58. 58. .vimrc?
  59. 59. .vimrc • 일종의 설정 파일 • vim 제대로 쓰기 위한 기본 중 기본 • 남의 .vimrc를 배껴서 쓰는게 지금은 편하긴 함
  60. 60. .vimrc • 하지만, 나중에는 직접 다 뜯어 고쳐보는게 좋음 • 앞서 배운 :set 이나 :colorscheme 같은 걸 여기에 기술 • vim이 실행되면서 .vimrc에서 내용을 읽고 설정하는 것
  61. 61. .vimrc • 설정 없는 vim은 메모장보다 쓸 데가 없음 • 기본적인 설정은 KLDP나 github에 꽤 올라와있음 • vim 메뉴얼을 참고해서 커스텀해도 됨
  62. 62. .vimrc • 제대로 된 스킴 색을 뽑기 위해, t_Co=256 / xterm-256color 사용 • colorscheme은 badwolf 사용 • <F5>는 gcc 맵핑 (윈도에서 썼던 흔적) • Set으로 각종 설정 켜 놓음 • nu = number (줄 번호) • ai = auto indent (엔터 후 들여쓰기)
  63. 63. .vimrc • tabstop = space 4개 사이즈로 • showmode = 현재 모드 보여주기 • listchars = 탭 (들여쓰기) 표시 • 보면 알겠지만, 여기저기 복붙한 느 낌이 잘 나고, 윈도 환경에서 쓴 흔 적이 남아있음 • KLDP에 올라온 것을 배낀게 8년이 넘어갔....
  64. 64. Plugins
  65. 65. Plugins • 사실 플러그인의 존재를 알게 된 건 꽤 근래의 일 (1~2년전?) • 아니 플러그인도 없이 어찌 vim을 썼는지 발표자도 모름 • 하지만, 플러그인 없이 쓴 기간에도 불편함은 없었음
  66. 66. Plugins • Gibbon에 있는 Vim 강좌가 괜찮음 • https://gibbon.co/pinda/guide-to-vim • 사실 지금도 플러그인 쓰는거 손에 꼽음
  67. 67. Plugins • Vim awesome • http://vimawesome.com/ • 플러그인 목록, 필요한 것 찾아 쓰면 됨
  68. 68. Power line https://kldp.org/node/102947
  69. 69. Power line • tmux powerline 조합을 vim에서 볼 수 있다는 게 장점 • 상당히 이쁘고 가독성도 나쁘지 않은 편 • 속도는 그닥, 정신 없는 듯한 느낌이 있음 (그래서 안 씀)
  70. 70. Vundle
  71. 71. Vundle • Plugin 관리자 • 패키지 관리자나 git를 써본 경험이 있으면 쉽게 적응 • 2010에 출현, 현재 꽤 널리 퍼진 듯
  72. 72. Vundle • https://github.com/gmarik/Vundle.vim • vundle은 git으로 다운 받아서 사용 가능 • Github의 Quick Start를 참조해서 설치하면 됨
  73. 73. Vundle • $ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim • vi ~/.vimrc • Quick Start의 .vimrc 내용 추가
  74. 74. Why (not) Vim?
  75. 75. Why (not) Vim? • vi는 터미널에 익숙해지기 위한 초석 • 이후, 팩키지 관리자 / 터미널 익숙해지기 쉬움 • ssh 같은 걸 많이 사용하게 되면 어쩔 수 없이 쓰게 됨
  76. 76. Why (not) Vim? • 손에 익는데 까지도 시간이 상당히 걸림 • vim 사용법과 플러그인은 지속적인 구글링을 해야함 • 실제 사용 햇수랑 실력이랑 비례가 안 되는 듯한 느낌
  77. 77. QnA
  78. 78. • 다음 발표 주제는 리눅스 파이프라인 / 팩키지 관리 / git • 방학 때 (빡센) 리눅스 스터디를 하는게 어떤가 함 • 리눅스 보다는 전반적인 것에 대한 스터디겠지만...

×