1. evil
vim 의 단축키를 '대부분' 지원함. C-a C-x 같이 숫자 깔짝거리는 거 지원 안 하고 gr(go to references) 가 lsp-mode 랑 따로 놀아서 키바인딩 별도로 해줘야 함
C-o, C-i (이전/다음 커서 위치로 이동) 도 vim 이랑 살짝 다르게 흘러가서 꽤나 헷갈림
2. .dir-locals.el, .file-locals.el
간단한 설정을 하기 위해서 lisp 를 능숙하게 다룰 줄 알아야 한다는 낮은 접근성과 코드를 잘못 적으면 아무런 에러나 메시지도 내뱉지 않고 그냥 설정 전체가 적용이 안 됨. 뭘 잘못한지는 직접 찾아야 함.
3. elisp
비슷하거나 중복되는게 너무나도 많은데 뭘 써야할지 recommend 도 없고 진짜 상당히 정교하게 짜지 않으면 나사가 몇 군데 빠진 느낌으로 굴러감. 정교하게 짜려면 elisp 를 엄청 빠삭하게 알아야 하는데 문법이 공부하기 싫게 생김
진입장벽도 높음. 기존 프로그래밍 언어와는 완전히 다름. 그렇다고 이걸 배웠을 때 바깥에 다른 곳에서 실용적으로 써먹지도 못 함.
4. 확장
only keyboard 환경으로 쓰기엔 불편하게 만들어놓은 확장들이 많음. 마우스로는 한 번 클릭이면 될 거를 키보드로만 쓰려면 추가 키바인딩도 해줘야 하고 키조합을 막 이리저리 눌러야 겨우 한 스텝씩 진행되는 느낌
그리고 코딩을 편리하게 해주는 도구 느낌의 확장이 전멸임. Doxygen comment generator 같은 게 쓸 만 한게 없더라. 그리고 lsp-mode 에서 signature help 띄울 때 미니버퍼로 갑자기 크게 떠서 코드 보이는 범위가 자꾸 좁아지고 커지고 해서 불편
5. 속도
이게 형용할 수 없는 굼뜸이 느껴짐. GCCEmacs 기준임. 파일 로드라던가 확장들의 속도는 vim 이랑 큰 차이가 안 느껴지는데 라인 수가 많은 파일일 수록 커서 이동에서 버벅임이 커지는 게 느껴짐. 특히 UI 로 뭘 띄우는 게 많은 확장 설치하면 커서가 중간중간 뚝뚝 끊어져서 움직이는 게 눈에 보일 정도
6. Emacs 설정 기본값
C/C++ 의 코딩 스타일 강제 적용(들여쓰기, 탭을 아무리 눌러도 반드시 띄워줘야 하는 만큼만 띄워지고 그 이상으로는 C-q + TAB 이런 괴상한 조합을 써야함),
multiline comment 쓸 때 주석 이어서 작성하려면 엔터키 쓰면 안되고 M-j 키를 써야 한다던지 하여튼 기본값이 왜 이런가 알 수가 없음.
* 그럼에도 쓰는 이유
vim 보다 훨씬 UI 가 편리함. 확장들이 UI를 적극적으로 사용해서 UI 관련 단점들이 싹 해결됨. 그리고 확장 하나하나가 에디터의 기본 스펙 범위에서 완전히 해방된 듯한 느낌들이라 이상한 제약 같은 게 없음
vim 의 단축키를 '대부분' 지원함. C-a C-x 같이 숫자 깔짝거리는 거 지원 안 하고 gr(go to references) 가 lsp-mode 랑 따로 놀아서 키바인딩 별도로 해줘야 함
C-o, C-i (이전/다음 커서 위치로 이동) 도 vim 이랑 살짝 다르게 흘러가서 꽤나 헷갈림
2. .dir-locals.el, .file-locals.el
간단한 설정을 하기 위해서 lisp 를 능숙하게 다룰 줄 알아야 한다는 낮은 접근성과 코드를 잘못 적으면 아무런 에러나 메시지도 내뱉지 않고 그냥 설정 전체가 적용이 안 됨. 뭘 잘못한지는 직접 찾아야 함.
3. elisp
비슷하거나 중복되는게 너무나도 많은데 뭘 써야할지 recommend 도 없고 진짜 상당히 정교하게 짜지 않으면 나사가 몇 군데 빠진 느낌으로 굴러감. 정교하게 짜려면 elisp 를 엄청 빠삭하게 알아야 하는데 문법이 공부하기 싫게 생김
진입장벽도 높음. 기존 프로그래밍 언어와는 완전히 다름. 그렇다고 이걸 배웠을 때 바깥에 다른 곳에서 실용적으로 써먹지도 못 함.
4. 확장
only keyboard 환경으로 쓰기엔 불편하게 만들어놓은 확장들이 많음. 마우스로는 한 번 클릭이면 될 거를 키보드로만 쓰려면 추가 키바인딩도 해줘야 하고 키조합을 막 이리저리 눌러야 겨우 한 스텝씩 진행되는 느낌
그리고 코딩을 편리하게 해주는 도구 느낌의 확장이 전멸임. Doxygen comment generator 같은 게 쓸 만 한게 없더라. 그리고 lsp-mode 에서 signature help 띄울 때 미니버퍼로 갑자기 크게 떠서 코드 보이는 범위가 자꾸 좁아지고 커지고 해서 불편
5. 속도
이게 형용할 수 없는 굼뜸이 느껴짐. GCCEmacs 기준임. 파일 로드라던가 확장들의 속도는 vim 이랑 큰 차이가 안 느껴지는데 라인 수가 많은 파일일 수록 커서 이동에서 버벅임이 커지는 게 느껴짐. 특히 UI 로 뭘 띄우는 게 많은 확장 설치하면 커서가 중간중간 뚝뚝 끊어져서 움직이는 게 눈에 보일 정도
6. Emacs 설정 기본값
C/C++ 의 코딩 스타일 강제 적용(들여쓰기, 탭을 아무리 눌러도 반드시 띄워줘야 하는 만큼만 띄워지고 그 이상으로는 C-q + TAB 이런 괴상한 조합을 써야함),
multiline comment 쓸 때 주석 이어서 작성하려면 엔터키 쓰면 안되고 M-j 키를 써야 한다던지 하여튼 기본값이 왜 이런가 알 수가 없음.
* 그럼에도 쓰는 이유
vim 보다 훨씬 UI 가 편리함. 확장들이 UI를 적극적으로 사용해서 UI 관련 단점들이 싹 해결됨. 그리고 확장 하나하나가 에디터의 기본 스펙 범위에서 완전히 해방된 듯한 느낌들이라 이상한 제약 같은 게 없음
6은 아무리 봐도 피쳐임. 5는 os랑 현재 작동 중인 패키지에 따라 다름. 4는 뭔 패키지를 말하는 지 모르겠다 내가 쓰는 건 다 키보드가 훨씬 편함. 3은 뭐 케바케인에 viml이 깝칠 건 못됨. 2는 프롬트로 직접 입력 안해도 됨. 1은 이맥스 패키지들이 이블 지원이 우선순위가 아니라;; 그리고 숫자 깔짝 함수 쓰는 건 일도 아님. 그리고 vim 이전 커서
피쳐는 플러그인 있을 걸?
LIFO 방식으로 답변하는 게 재밋네.
폰에서 위로 읽으면서 씀ㅋ
6은 누구 좋으라고 한 건지 모를 GNU 스타일 적용, 5는 아치 리눅스와 gccemacs 및 lsp-mode, lsp-ui, 4는 그냥 코딩에 도움을 주는 유틸같은 것들이 없다. 기능은 있으나 헬퍼는 없다고 3은 viml 은 대충 짜도 그럭저럭 굴러가는 편인데 elisp 는 세세하게 신경써주지 않으면 안되는 걸 내가 겪었다는데?
2는 그럼 디렉토리별 파일별 설정은 어떻게 해 인덴트, 패키지별 옵션 등 프로젝트마다 달리 해줘야 하는 것들이 있는데 어떻게 저걸 안 쓰고 가능하다는 거지 1은 내가 좀 더 불편을 감수해도 되는 문제라 큰 신경은 안 쓰이지만 살짝 그냥 걸린다임
특히 6번은 나만 불편한 게 아니라 EmacsWiki ("You probably don’t want the default style." -Indenting C 문서의 디폴트 BSD C언어 스타일에 대한 언급), 스택익스체인지에서도 많이들 불편 호소함
파일마다 # -*- mode: sh; sh-indentation: 4; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
처럼 인덴트 처리할수는 있을껄
BSD* -> GNU
그리 깔끔한 방식은 아니라고 생각함. 프로젝트 전체에 설정을 주려면 모든 파일에 그 코멘트를 넣어야 하고 인텐트 depth 뿐 만 아니라 탭키 인덴트 이벤트 자체가 이상함. 왜 강제로 여러개 못 넣게 막은걸 디폴트로 한건지 인덴트는 그렇다 치더라도 저장할 때 코드 포맷 자동으로 해주려면 dir-locals 직접 써야하더라
탭키 누를때 한번에 인덴트 되길 원한다고? 그건 될껄 컴터 켜봄.
6은 C-q 자체의 기능도 말할 건 많지만 탭 기능은 단순 하드 탭이 아니라 포맷 기능임. vim에서 넘어왔으면 " 같은 기능이지. 그리고 모드에 따라 탭 역할 달라서 하드 탭으로 쓰면 불편함. 그리고 다 함수라 얼마든지 함수명 찾고 리바인딩 가능 (e.g. C-h k M-j로 찾고 global-set-key).
4는 아직도 뭔솔인지 모르겠다. 코딩에 도움을 준다고? snippet같은 걸 말하는 거냐 기본적인 린터를 말하는 거냐 아니면 태깅/레프런스 팔로우? 그냥 doxygen기능 없다고 싸잡아서 말하는 거임? 이거도 스니펫 만들기 쉬움.
ㄴㄴ 그게 아니라 코멘트랑 코드를 따로 띄워서 코멘트를 같은 컬럼에 맞추려고 하는데 코드 뒤에 탭 키를 암만 눌러도 아예 공백을 주려고 하질 않음. 그리고 {} 괄호 안에 들어왔을 때 1-depth 인덴트가 기본이긴 하지만 내 맘대로 n-depth만큼 띄우지 못하게 막혀있음 그게 기본값임
4는 doxygen 뿐 만이 아니고 뭐라해야되나 깔짝깔짝 편리하게 해주는 확장 자체가 부족하다는 거지 어떤 코드 위치에 커서를 띄울 때 인접한 괄호를 강조시켜주는 확장도 맘에 드는 게 없고 여러가지 또 있었는데 그냥 불편 감수하고 쓰느라 까먹음
3은 VimL을 얼마나 써봤는지 모르겠는데ㅋ 많이 써보면 현타 오지게 온다. 단순 DSL이라 glue 그 이상은 못됨 vim 밖에서는 훠어어얼씬 더 쓸모 없고. Elisp는 lisp임. 이게 난 솔까 이맥스의 최대 장점 중 하나라고 본다. 난 Melpa에 있는 패키지 메인테이너로 하는 말임. VimL도 꽤 써봤음. 그리고 요즘 dash같은 거 있어서 괜찮은 코드 쓰기 쉬워짐.
2는 add-dir-local-variable 쓰면 손으로 직접 안써도 된다고. 메뉴 기능 (e.g. ivy) 있으면 선택해서 지정할 수 있고.
솔직히 성능 문제 많음. 특히 I/O 관련해서 비동기적으로 안되어있어. 게다가 스크롤링좀 개선해줬으면!!! pixel scroll mode는 아예 못써먹을 물건이라 doom이맥스에서도 드랍했고, good scroll이 그나마 양반인데 그래도 성능상 문제가 많음. 난 evil은 불만 없어서 ㅎㅎ ㄱㅊ
님 말대로 doxygen도 좋은 확장 있으면 좋겠다.
아 그리고, VS Code에서 마우스 가져다됐을때 복사가능한 기능이랑 괜찮은 미니맵이 있었으면.
어떤 패키지 버그로 인해서 무한루프를 타는 게 좀 잦은 느낌임. 마우스 스크롤 해보니까 진짜 아주 ugly 하고 불편함. 나는 스크롤도 vim 단축키로 하지 마우스로 안 해서 체감이 덜 하긴 해도 마우스로는 스크롤 안 해야겠더라
솔까 이맥스처럼 스크롤 구린 물건 첨봤음;;
그냥 smooth scroll 어쭙잖게 구현한 거 말고 애니메이션 끈 것마냥 딱딱 정직하게 스크롤하는 방법도 따로 없는 거임?
그나마 괜찮은 방법 2개 찾긴했음. 이것도 이따 글싸봄.
리슾은 생긴게 개 좆같이 생긴게 문제지, 막상 쓰면 금방 배움.