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