나비게이션 꿀팁

tips

(ㄴㅂㄷㄱㄷㄱ) #1

그동안 코딩하면서 유용하게 써왔던 네비게이션 방법들을 적어봄

파일 여기저기, 폴더 이곳저곳을 휙휙 왓다갓다 거린다고 해서
일명 '홍길동짓’이라고 하는데 (방금 만들어냄)

익숙해진다면 코딩 속도, 작업 효율 향상 쑥쑥 + 빠른 화면전환으로 엄청 열심히 일하는 척 가능


파일 전환

일단 파일 네비게이션 쓰리톱

  1. MRU 나비게이션
    최근 수정한 파일, 최근 닫은 파일들 중심으로 파일 찾기

  2. search open buffers
    열어둔 파일들 중심으로 파일 찾기

  3. working directory navigation
    현재 디렉토리 + 서브 디렉토리 중심으로 파일 찾기

내용 전환

파일 네비게이션을 마스터 했으면 이제는 contents 위주로

  1. search, grep, ack
    기본 중의 기본. ctrl + f 를 눌러 원하는 내용이 나올 때까지 계속 뒤로 넘기기

  2. tag jump
    syntax engine 등의 도움을 받아 키워드를 누르면 definition 등으로 점프하는 기능

Fuzzy

사실 위에 소개한 평범하고 일상적으로 누구나 경험해보았을 것임. 여기서 속도를 한단계 업그레이드 하는 방법이 바로 Fuzzy 를 붙이는 것임.
fuzzy 가 무엇이냐?
바로, 서브 문자열을 찾을때 일일이 스펠링에 신경쓸 필요 없이
마구잡이로 의식의 흐름으로 타자를 쳐도 문맥을 이해하는 유용한 방식임

예시:
hlwd -> “hello world”
pustvm -> “public static void main(String args){ …”
yopl -> “System.out.println(”…")"

크흠… 예시 도중에 '그 언어’가 나온 건 넘어가자. 사실 '그 언어’는 너무 verbose 해서 fuzzy 를 사용하면 유용함이 배가 된다.

이 기술을 위 5가지 단축키에 대입하여

  1. fuzzy mru 네비게이션
  2. fuzzy buffer 네비게이션
  3. fuzzy working directory 네비게이션
  4. fuzzy line search (regex가 아니다!!! 이 목적으로써는 거의 regex 상위 호환)
  5. fuzzy tag search

등을 활용할 수 있다.

vim으로 이 모든 걸 다 할 수 있는 plugin 이 존재한다. fzf

쉘 활용

에디터를 주로 사용하는 사람들에게는 저 위 5가지만 숙지해도 충분하지만
보다 편한 홍길동질을 위해 쉘 까지 활용한다면

fzf 플러그인 (재빠른 sub directory/file navigation)
rupa/z 플러그인 (MRU directory/file navigation)
tmux (여러개 열어두고 휘리리휙휙)

등등을 쓸 수 있다.

기타:

  1. 커서 밑 파일 열기
    에디터에 “source ~/hello/world.c” 라고 적혀있다면
    그 파일 경로에 더블클릭, 혹은 커서를 가져다대고 특정 단축키를 누르면 ~/hello/world.c 파일이 열리는 단축키 숙지

  2. 커서 밑 파일 만들기
    <script src="ifnotexist/create.js">
    여기서 커서를 ifnotexist/create.js 에 가져다 놓고 특정 단축키를 누르면 그 경로로 파일을 새로 만들어주는 기능이다.

첫번째는 zshrc, vimrc 파일 환경 설정 덕후질할때 유용하고
두번째는 웹질할때 유용하다.

3줄요약:
# 투머치토커 때려잡는 법
# 손가락 관절 보호법
# 해피 홍길동