Vim + Tmux = Perfect!
요즘에는 (2018년 기준) 대단히 훌륭하고 아름다운 텍스트 에디터들이 많습니다. 제가 써본 것만 해도 다음과 같이 꽤 많습니다.
도대체 왜 그런걸까요?
Vim은 CLI(Command Line Interface)기반의 다소 투박해 보이는 텍스트 에디터입니다. 하지만 그 간단함에 의해 ssh 등 원격접속을 하는 모든 이용자들은 어쩔 수 없이 Vim을 접하게 되죠. 그리고 종료를 하기 위해 여러가지 키보드를 누르다가 결국 강제종료를 누르게 되는 일을 겪게 되죠. 하지만 Vim은 단순히 간단해서 쓰는 것만은 아닙니다. 수 많은 유저들이 일구어 놓은 Vim세계는 생각보다 훨씬 방대합니다. 하지만 처음 써 보는 유저에겐 수많은 기능은 오히려 독이 될 수 있습니다. 따라서 자신이 Vim의 초보자라면 다음을 사용해보세요.
Vim - Bootstrap
자신에게 맞는 언어를 체크하고 Generate! 한 뒤 Instruction에 나와있는대로만 하면 예쁜 Vim을 Get 할 수 있습니다. 그렇게 써보다가 질릴 때가 되면 이제 Vim에 입문하면 됩니다.
Vim의 수많은 플러그인들을 사용할 수 있는 여러가지 방법이 존재하는데 개인적으로는 Vim Plug를 추천합니다. 이것을 사용하면 아주 쉽게 Plugin들을 설치할 수 있습니다. 예시로는 제가 만든 vimrc파일을 보시면 도움이 되겠네요.
Axect's .vimrc
제 vimrc를 복사해서 /home/<user_name> 디렉토리에 (user_name에는 본인의 유저명을 치세요) .vimrc파일을 만드세요. 꼭 .이 붙어 있어야 합니다. 그리고 제가 적은 plugin들을 싹 지우고 그 자리에 본인이 다운받고 싶은 plug들을 적으면 끝!
Vim은 그 자체로도 빛 나지만 제가 이 글을 적은 이유는 비단 Vim의 아름다움을 보여주는 것 뿐만 아니라 tmux라는 tool과 Vim이 만나게 되면 엄청난 Synergy 효과를 낸다는 것을 보여주기 위함이므로 이제 tmux를 보러 갑시다.
Haruair's Blog
tmux는 여러 개의 터미널을 동시에 사용하고 터미널 간에 정보전송을 쉽게 만들어 줍니다. 사용법은 매우 간단하니 위의 블로그나 구글에서 찾아보면 바로 터득할 수 있습니다. 여기서는 이제 tmux와 vim을 같이 사용할 수 있게 만들어주는 Vim-slime을 소개하도록 하겠습니다.
Vim-Slime Github
R, Python, Julia, Elixir, Haskell, Scala 등 REPL을 제공하는 모든 언어에 대해서 Vim-Slime은 미친 효율을 보여줍니다. 특히 Haskell은 REPL의 문법과 Editor의 문법이 다른데 놀랍게도 Vim-Slime은 이를 보정해서 전송합니다. 이 놀라운 기능 덕에 Vim-Slime을 한 번도 안 써본 사람은 있어도 한 번만 써본 사람은 없습니다. 아직까지 안 써보았다면 꼭 써보시길 바랍니다.
- Visual Studio Code (Visual Studio하고는 다릅니다.)
- Atom
- Bracket
- Sublime Text 3
- Vim
- Spacemacs
- Nano
- Nice Editor
도대체 왜 그런걸까요?
Vim: The most popular editor in the world
Vim은 CLI(Command Line Interface)기반의 다소 투박해 보이는 텍스트 에디터입니다. 하지만 그 간단함에 의해 ssh 등 원격접속을 하는 모든 이용자들은 어쩔 수 없이 Vim을 접하게 되죠. 그리고 종료를 하기 위해 여러가지 키보드를 누르다가 결국 강제종료를 누르게 되는 일을 겪게 되죠. 하지만 Vim은 단순히 간단해서 쓰는 것만은 아닙니다. 수 많은 유저들이 일구어 놓은 Vim세계는 생각보다 훨씬 방대합니다. 하지만 처음 써 보는 유저에겐 수많은 기능은 오히려 독이 될 수 있습니다. 따라서 자신이 Vim의 초보자라면 다음을 사용해보세요.
Vim - Bootstrap
자신에게 맞는 언어를 체크하고 Generate! 한 뒤 Instruction에 나와있는대로만 하면 예쁜 Vim을 Get 할 수 있습니다. 그렇게 써보다가 질릴 때가 되면 이제 Vim에 입문하면 됩니다.
Vim의 수많은 플러그인들을 사용할 수 있는 여러가지 방법이 존재하는데 개인적으로는 Vim Plug를 추천합니다. 이것을 사용하면 아주 쉽게 Plugin들을 설치할 수 있습니다. 예시로는 제가 만든 vimrc파일을 보시면 도움이 되겠네요.
Axect's .vimrc
제 vimrc를 복사해서 /home/<user_name> 디렉토리에 (user_name에는 본인의 유저명을 치세요) .vimrc파일을 만드세요. 꼭 .이 붙어 있어야 합니다. 그리고 제가 적은 plugin들을 싹 지우고 그 자리에 본인이 다운받고 싶은 plug들을 적으면 끝!
Vim은 그 자체로도 빛 나지만 제가 이 글을 적은 이유는 비단 Vim의 아름다움을 보여주는 것 뿐만 아니라 tmux라는 tool과 Vim이 만나게 되면 엄청난 Synergy 효과를 낸다는 것을 보여주기 위함이므로 이제 tmux를 보러 갑시다.
Tmux: Simple but powerful!
tmux는 아주 간단합니다. 본인이 사용하는 패키지매니저로 tmux를 설치하고 tmux를 치면 나옵니다. tmux를 쉽게 사용하는 방법은 haruair님이 잘 정리해주셨으니 참고하시길 바랍니다.Haruair's Blog
tmux는 여러 개의 터미널을 동시에 사용하고 터미널 간에 정보전송을 쉽게 만들어 줍니다. 사용법은 매우 간단하니 위의 블로그나 구글에서 찾아보면 바로 터득할 수 있습니다. 여기서는 이제 tmux와 vim을 같이 사용할 수 있게 만들어주는 Vim-slime을 소개하도록 하겠습니다.
Vim-Slime: Vim + Tmux = Perfect!
VS Code나 Atom을 쓰는 이유 중 한 가지로 에디터자체에서 터미널을 열고 닫을 수 있다는 것입니다. tmux와 Vim을 같이 사용하면 이와 비슷하게 사용할 수 있죠. 하지만 코드를 치다가 터미널로 왔다갔다 하는 점은 여전히 무언가 불편합니다. 이것을 해결하기 위하여 Jupyter라는 새로운 시도가 있었습니다. Jupyter는 모든 것을 Interactive하게 만들어 이를 해결하였습니다. 굳이 터미널에서 실행하지 않아도 내가 지금 치고 있는 것을 바로바로 실행할 수 있고 또 바로 결과를 볼 수 있습니다. 하지만, 그 자체로 상당히 무거우며 모든 정보를 메모리에 저장해놓기 때문에 조금만 데이터가 커져도 메모리가 꽉 차게 됩니다. 따라서 Interacivity를 포기하고 다시 Hard Coding으로 회귀하게 되죠. 하지만 Vim-Slime이라는 이 놀라운 플러그인은 Vim과 Tmux라는 절대적으로 가벼운 Tool들에 Interactivity를 첨가해줍니다.Vim-Slime Github
R, Python, Julia, Elixir, Haskell, Scala 등 REPL을 제공하는 모든 언어에 대해서 Vim-Slime은 미친 효율을 보여줍니다. 특히 Haskell은 REPL의 문법과 Editor의 문법이 다른데 놀랍게도 Vim-Slime은 이를 보정해서 전송합니다. 이 놀라운 기능 덕에 Vim-Slime을 한 번도 안 써본 사람은 있어도 한 번만 써본 사람은 없습니다. 아직까지 안 써보았다면 꼭 써보시길 바랍니다.
댓글
댓글 쓰기