Vism의 colorschem을 OS의 암흑 모드를 따르도록 하는 플러그인

4355 단어 VimmacOStech
이 기사는 VimAdventCalendar2020 20일째 보도입니다.
19일째는 유타카타초융합!시공을 초월한 굴레를 시도한 Neo Vim입니다.였다.

개시하다


저는 카토라고 합니다.(
이 글은 MacOS/Windows에서 실행되는 OS의 어두운 모드에 따라 Vim을 전환하는 Colorschemae 플러그인을 소개한다.

성과물


https://github.com/kat0h/vim-auto-color-switcher

GIF처럼 맥OS의 외관 모드 변경에 따라 배색 시나리오의 플러그인을 즉시 전환할 수 있다.
윈도용 소스도 준비했지만 움직이지 않았다.
잡스 근처에서 인기가 많을 텐데, 윈도 Vim을 만들지 않은 환경이 검증되지 않았기 때문이다.
나에게 윈도는 게임기이기 때문에 어쩔 수 없다.신난다.

발단


저는 MacOS Mojave에서 추가된 어둠 모드를 많이 사용해요.
그러나 나는 매번 외관 모드를 바꿀 때마다 Vim의 배색 방안을 바꿔야 한다는 것에 불만을 느낀다.
나는 그곳에서 스스로 해 보기로 결정했다.
맥빈용이라면 같은 플러그인있다을 사용할 수 있지만 맥빈만의OSAppearanceChangedv:os_appearance가 필요하다.
(실제로 이 플러그인은 제작 후Vim-jp Slack에 진행된다가르쳐 주셨어요..감사합니다)

사용법


자세한 내용은 GiithubREADME을 보십시오. 제가 간단하게 설명할 수 있도록 허락해 주십시오.

설치하다.


Mac을 사용하는 사용자가 Dein Vim-plug 등의 플러그인 관리자를 사용하는 경우
vimrc 등에 저장소,build를 추가하는 옵션에make를 추가하면 2진법으로 구성된 장치를 설치할 수 있습니다.
이것 이외의 상황
먼저 아래와 같이 이진법을 만들어 주세요.
$ curl -l https://raw.githubusercontent.com/kato-k/vim-auto-color-switcher/main/plugin/auto_color_switcher.swift > ~/Downloads/auto_color_switcher.swift
$ swiftc ~/Downloads/auto_color_switcher.swift -o ~/Downloads/auto_color_switcher
이 2진 경로를vimrc 등으로 변환합니다let g:auto_color_switcher#binary_path=expand('バイナリのパス')이렇게 가르치면 당분간 움직일 줄 안다.
이 글이 투고한 후, Vim-jp는 나에게 플러그인 관리자가 자동make 기능을 가지고 있다고 알려주었다.
감사합니다!

옵션


이렇게 하면 백그라운드만 전환하면 대응하는 배색 방안이 발생하지 않습니다좋지 않은 동작.
그래서 이런 상황에서
let g:auto_color_switcher#command={
    \ 'light': 'colorscheme xcodelight',
    \ 'dark' : 'colorscheme xcodedark'
    \}
이렇게 동작을 덮어쓸 수 있습니다.

개요


OS의 외관 패턴이 변경될 때 stdout에 상태를 출력하는 명령을 만들어 Vim 채팅을 시킨다.

Vim 측 동작


Vim을 사용하여 외부 프로그램과 비동기적으로 통신하려면 job 기능을 사용합니다.
서버를 만들어 함께 사용하는 사람도 있지만, 이렇게 고급스러운 조작이 필요 없다는 판단job 때문에 시동 명령의 표준 출력out_cb을 활용했다.

명령의 동작(macOS의 경우)


Vim은 단일체로 OS의 외관 모드를 얻을 수 없거나 느리기 때문에 (AppleScript를 이용하여) swift를 이용하여 변경과 알림을 감지하는 명령을 썼다.
현재 상태는 FundationUserDefaults에서 확인할 수 있습니다.UserDefaults.standard.string(forKey: "AppleInterfaceStyle") ?? "Light"OS 설정의 변경 사항을 확인하려면 cocoa의 observer를사용, 변경이 있을 때만 ↑의 결과를 얻을 수 있습니다.

기타 OS 지원 정보


Windows


이것은 잠시 C#로 이동하는 소스를 써 보았지만 (대략) 움직이지 않았다.
Windows Vim을 전혀 모릅니다.
프레임당 액세스 레지스트리의 규격이었기 때문에 HDD/SSD에 대한 부하가 곧 가해질 것 같아서 무섭다.현금으로 하시겠어요?

Linux


알아봤는데 안 돼요.
예를 들어 Ubuntu는 설정에서 어둠 모드, 조명 모드 등으로 전환할 수 있다.
그러나 이것은 그놈의 주제인 야루-dark/yaru-light를 전환한 것일 뿐,wm레벨(상세하지 않기 때문에 말을 잘못할 수 있음)의 라이트/다크 모드가 아니다.
우분투의 그놈마저도 그렇기 때문에 불가능하다고 판단했다.

총결산


이 플러그인은 Xcode 색상표과 함께 사용할 때 맥의 Vim에 잘 어울린다.나는 매우 기쁘다.
OS와의 친화성이 신경 쓰이는 맥OS를 사용하는 여러분의 Vimmer!
꼭 사용하세요.

지금까지 제작된 소재 플러그인
https://github.com/kat0h/nyancat.vim
https://github.com/kat0h/vim-colorscheme-settings

좋은 웹페이지 즐겨찾기