보통 풀스크린으로 작업을 하기는 하지만 탭을 전환해야 할때는 어느 탭인지 몰라서 매번 어느 탭인지를 찾아야 했다. 좀 불편하긴 하지만 그냥 어차피 화면에 나오긴 하니까 불편한대로 사용하고 있었는데 어느 날 트위터에 TJ Holowaychuk이 다음과 같은 트윗을 올린 것을 발견했다.
트윗을 보는 순간 필요하던건라서 표시해뒀다가 이제야 적용을 해봤다. 이 스크립트는 Gist에 올라와있다.
function tabname {
printf "\e]1;$1\a"
}
if [ x`type -t cd` == "xfunction" ]; then
# previously wrapped cd
eval $(type cd | grep -v 'cd is a function' | sed 's/^cd/original_cd/' | sed 's/^}/;}/' )
else
# builtin
eval "original_cd() { builtin cd \$*; }"
fi
cd() {
original_cd "$*"
tabname $(basename $(pwd))
}
이 스크립트를 .bashrc나 .bash_profile에 넣어서 터미널을 띄울때 자동으로 실행되도록 해주면 된다.
이제 탭이 위처럼 변형해서 어떤 디렉토리에서 작업중인지 알 수 있다. 프로젝트가 아니라 디렉토리를 보여주는 것이므로 상황에 따라 일반적인 폴더가 보일수도 있겠지만 큰 문제는 되지 않아보이고 괄호안에 실행되는 프로세스가 표시되어서 더욱 확인하기가 쉽다. 물론 스크립트 내용에서 보듯이 cd 명령어를 기반으로 탭이름을 지정하기 때문에 cd로 이동하지 않고 바로 탭을 띄웠을 때는 탭이름이 아직 나오지 않지만 cd명령어는 뭐 언제든 사용하게 되므로 별 문제가 되지 않는다. 이제 원하는 탭으로 바로 이동하기가 훨씬 쉬워졌다. 그리고 TJ의 트윗에 답변단 내용들을 보니 폴더 대신에 Git정보를 기반으로 보여주는 스크립트나 좀 더 깔끔한 형태의 스크립트도 올라와 있다.
오홋 적용하니까 좋네요!
감사합니다.
저도 뭐 TJ가 만든 코드 포스팅만 한거라서요. ㅎㅎㅎ
현재 실행중인 command를 표시하고 싶은데 혹시 방법이 없을까요?
예를 들어 nodemon을 실행하고 있으면 `nodemon`이 나오는거죠. 실행중인 process인 node가 나오는 것 말고요.
전부터 이거 한번 해보려고 했는데 방법을 못찾겠네요.
그렇게는 해본적이 없네요. 가능할것 같기도 하면서.. 흠...