vim 을 다시 공부해 보려고 합니다

2 분 소요

갑자기 vim 을 다시 공부해 보기로 합니다

  • 얼마 전에 해피해킹 키보드를 샀습니다. 그동안 쓴 키보드는 대략 다음과 같아요.
    1. Filco 마제스터치 갈축: 연구실에서 조금 쓰다가 아무래도 갈축이라서 조금 시끄럽더군요. 그리고 얼마 지나지 않아서 맥북을 사게 되어서 봉인하게 되었습니다. 그래도 색깔이 검빨이라서 다른 기계식 키보드에 키캡을 이식하기에는 좋아요. 그리고 얘는 닌자각인이어서 예쁘죠.
    2. 맥북 키보드: 맥북을 구매한 다음부터는 맥북 키보드를 쭉 사용해왔습니다. 적당한 키감, 그리고 휴대성으로 인해서 그리고 연구실 생활을 하지 않게 되면서 데스크탑이 없어졌기 때문에 더이상 외부 키보드가 필요하지 않았기 때문이죠. 따라서, 갈축 키보드는 거의 사용하지 않게 되었죠.
    3. Filco 마제스터치 저소음 적축: 회사에 입사하게 되면서, 새로운 키보드가 필요했습니다. 기존의 갈축 키보드의 경우는 아무래도 시끄러워서 회사에서 쓰기에는 조금 눈치가 보여서 새로운 걸 사야겠더라고요. 그래서 같축 말고 적축 그 중에서도 저소음적축을 구매했습니다. 다만, 얘는 각인이 심지어 한글로 각인이 다 있어서 좀 지저분해 보이는 느낌이 있습니다.
    4. 해피해킹 블루투스: 최신 해피해킹 블루투스 는 아니고 그 전 버전을 구매했습니다. 지금 생각해보니 어떤 이유로 샀는지 정확한 기억은 나지 않는데, 그냥 어떤 로망이 있었던 것 같습니다. 기본 키보드 외에 기계식 키보드, 레오폴드니 토프레니 하는 키보드에 대한 뽐뿌가 오면서부터 항상 눈에 아른거리던 키보드는 바로 해피해킹이었죠. 작고 깔끔하고 컴퓨터를 좀 친다 하는 사람들은 대부분 해피해킹 키보드를 가지고 있었습니다. 소위, 키보드 끝판왕이라고 불리는 놈이죠. 언젠가는 얘를 꼭 정복하고 말겠다 라는 일종의 꿈이 있었던 차에, 문득 그냥 사게 된 것 같습니다.
  • 아무튼, 그래서 해피해킹을 사고 사용해 보는데, 아무래도 vim에 익숙해지면 훨씬 해피해킹을 잘 사용할 수 있게 될 것 같더라고요. 그래서, vim을 다시 공부해보기로 합니다.

vi, vim

  • vi가 있고 이후에 vi를 완전히 새롭게 만든 vim이라는 것이 나왔습니다. 사실 둘은 다른 물건이기는 하지만, 사용자 입장에서는 뭐 그 둘 차이를 몰라도 큰 문제는 없어요. 둘다 리눅스 혹은 유닉스 그것도 헷갈리면 그냥 터미널에서 문서를 편집하기 위해서 필요한 문서편집기 라고만 이해하셔도 아무 문제가 없습니다. vi의 역사 및 장점들은 나무위키 - vi를 확인하는 것이 더 좋습니다.
  • 물론, 요즘 세상에는 VS code와 같은 좋은 IDE들이 많이 있기는 한데요, 그래도 vi는 vi만의 장점이 있죠. 특히, 키보드만으로 모든 것을 할 수 있기 때문에, 극도로 마우스를 쓰는 것을 꺼려하는 사람들은 키보드만으로 모든 것을 할 수 있다는 장점이 있습니다. 특히 다른 것보다, hjkl만으로 문서의 위아래를 움직일 수 있다는 것은 아주 큰 장점이죠.
  • 그 외에도 익숙해지면 이런저런 장점들이 있기는 하지만, 마우스보다 오히려 느려지는 것 같은 느낌이 들 때도 있는 것이 사실입니다. 음, 그래도 저는 좀 더 본격적으로 vi를 사용해보려고 해요. 그리고 vi는 해피해킹이랑 매우 잘 맞거든요.

vi material

  • vimtutor: terminal에서 vimtutor를 치면, vim을 공부할 수 있는 명령어들이 나옵니다.

vimtutor - basic things

  • hjkl: 방향키
  • x: delete character
  • %: 괄호 위에 커서를 둔 상태에서 %를 누르면, 해당 괄호에 매칭되는 다른 괄호(앞 괄호라면 뒷 괄호로, 뒷 괄호라면 앞 괄호로)로 매칭됩니다.
  • /search_word: 문서 내에서 search_word를 검색하고 그 위치로 움직입니다. 이 상태에서 매칭되는 다음 단어로 움직이려면 n을 위 단어로 움직이려면 N을 타이핑 하면 됩니다.
  • :s/oroginal_word/new_word/g: original_wordnew_word로 변환해줍니다. 끝의 g는 해당 줄에 등장하는 모든 original_wordnew_word로 변환한다는 것을 말합니다. 만약 g가 없으면 단 1번만 변환해줍니다.
  • :from_line_num,to_line_nums/old/new/g: from_line_num에서 to_line_num 내에 존재하는 단어들에 대해서만 치환해줍니다.
  • :%s/old/new/g: 파일 전체에서 발견된 모든 단어를 치환해줍니다.
  • :%s/old/new/gc: 파일 전체에서 발견된 모든 것을 찾고, 치환될지 안될지를 하나하나씩 변경해줍니다.
  • !ls: 명령 모드에서 앞에 ! 를 붙이고, 리눅스 명령어를 실행할 수 있습니다.
  • 여기까지가, vimtutor를 통해서 배운 내용 들 중에, 제가 익숙하지 않았던 내용들입니다.

wrap-up

  • 일단은 요정도로 마무리하겠습니다.
  • 이제는 vim에 대해서 대략 알았고, 이제 환경 설정만 조금씩 해보면 될것 같네요.

Reference

태그: ,

카테고리:

업데이트:

댓글남기기