갤 살리기 운동 일환으로 뭐라도 연재 시작해봄
순정 vim부터 (9.0 기준) neovim까지 (nightly 기준) 자잘한 팁같은거 조금씩 뿌릴 생각임


h,j,k,l 같은 vim motion이나 기본적인 config 작성법은 안다는 전제 하에 적을거임
강좌가 아니라 어디까지나 팁. 검색하면 수두룩하게 나오는 누구나 다 아는 정보는 피해서,
최대한 듣보잡 정보인데 알아두면 쓸만한것들만 모아보려 하고 있음
내장 help 문서가 이미 잘 작성되어 있는 vim 특성상 글이 좀 짧은건 양해바람


잘못된 정보에 대한 피드백은 언제나 환영


———


이번엔 순수한 snippet 형태의 팁임


<예시 코드>

(이탈릭 가독성 씹창난건 양해좀. 폰트 바꾸기 귀찮아...)


`lspconfig.tsserver.setup()` 과 같은 형태로 Language Server 실행하다가 관련 파일 열 때마다 서버 없으니까 설치하라고 에러메시지 뜨는건 경험해봤을거임
설치야 해주면 되지만 자주 안쓰는 Language Server의 경우, 매번 config에서 지워주기 귀찮지


:h executable()


`lspconfig.tsserver.document_config.default_config.cmd`로 실행될 Language Server 커맨드를 확인할 수 있고, (nvim-lspconfig에 내장된 디폴드 값 기준)
`vim.fn.executable` API로 해당 Language Server를 PATH에서 찾을 수 있는지 확인할 수 있음
이걸 이용하면 서버가 실행 가능한 경우에만 실행되도록 할 수 있다.
물론 cmd 값이 `{ "npx", "some-language-server" }` 이런식으로 되어있지 않으리란 보장을 할 수 없기 때문에 완벽하진 않지만
웬만해선 동작할거임

몇번 테스트해봤는데 startuptime에는 별 영향이 없음

Mason을 쓰지 않는 사람들에겐 특히 유용할듯


사진은 lua script긴 한데, `executable()`은 vim api니까 순정 vim 쓰는 변태들도 비슷한 방식으로 쓸 수 있음