GN⁺: Fish 4.0.0 릴리스
(github.com/fish-shell)- Rust로의 포팅: fish의 핵심 코드가 C++에서 Rust로 포팅됨. 이는 종속성과 빌드 방식에 큰 변화를 가져오지만 사용자에게 직접적인 영향은 없음.
-
비호환 변경 사항:
-
bind
명령어의 새로운 키 표기법 도입. -
ctrl-c
가 이제clear-commandline
을 호출하며, 이전 동작은cancel-commandline
으로 사용 가능. -
random
함수의 시드 값에 따른 결과가 이전 버전과 다르게 나올 수 있음. - 명령어 위치에 있는 변수는 이제 서브커맨드 키워드로 확장될 수 없음.
-
functions --handlers
가 이제 정의된 순서대로 핸들러를 나열함. -
qmark-noglob
기능이 기본적으로 활성화됨.
-
개선 사항 및 수정
-
키보드 프로토콜: XTerm의
modifyOtherKeys
와 kitty의 키보드 프로토콜 지원. - 자체 설치 바이너리: fish를 자체 설치 가능한 바이너리로 빌드 가능.
-
명령어 히스토리:
fish_should_add_to_history
함수로 히스토리에 추가할 명령어 결정 가능. - 되돌리기 기능: 명령어 실행 후에도 히스토리가 유지됨.
- 약어 제한: 특정 명령어에만 약어 확장 가능.
비추천 및 제거된 기능
-
commandline --tokenize
가commandline --tokens-expanded
로 대체됨. -
bind -k
구문을 통한 키 이름 지정이 비추천됨. - 붙여넣기 모드가 제거됨.
스크립팅 개선
-
새로운 히스토리 명령어:
history append
로 명령어를 실행하지 않고 히스토리에 추가 가능. - 새로운 리다이렉션: `
Hacker News 의견
- Fish 4.0의 가장 흥미로운 점은 이제 Rust로 작성되었다는 것임
- 테스트를 통해 눈에 띄는 차이가 있는지 확인하고 싶음
- 사용자에게 직접적인 영향은 없을 것이라고 함
- Fish의 핵심을 다시 작성했지만, 거의 모든 것이 동일하게 작동함
- Fish 셸로 전환한 사람들에게 가장 큰 단점이 무엇인지 궁금함
- 시스템에서 익숙해진 후 회사 서버 시스템에서 Bash나 Zsh를 사용해야 하는 경우
- Bash에서 Fish로 전환할 거라면 Nushell로 전환하는 것도 고려할 만함
- Zsh 사용자로서 Fish를 시도해보고 싶음
- Zsh에 플러그인을 추가하여 Fish처럼 작동하게 만들고 있음
- Homebrew를 사용하는 경우 아직 Fish가 제공되지 않음
- 추가될 예정임
- Fish를 여러 해 동안 사용했지만, 주로 뛰어난 자동 완성 기능 때문임
- 간소화된 테마/프롬프트 시스템과 oh-my-fish 플러그인 관리도 좋지만 부차적임
- Bash와 호환되지 않는 Fish의 나머지 기능들은 불편함
- 특히 환경 변수 관리가 문제임
- 원칙적으로는 Bash보다 더 나은 설계지만, 그리 큰 차이는 없고 사용 빈도가 낮아 매번 다시 배워야 함
- 문서에서 설정 지침을 복사-붙여넣기할 때 불편함
- Rust로의 마이그레이션을 위한 개발 조정이 어떻게 이루어졌는지 궁금함
- 단일 PR(#9512)만 보임
- Rust로 다시 작성한 후 바이너리가 얼마나 커졌는지 궁금함
-
clear-commandline
는 흥미로운 기능임- Windows와 macOS 간의 일관성을 유지하는 데 어려움이 있음
- Karabiner를 제대로 사용하지 못함
- 기본
cancel-commandline
설정을 확인할 예정임