Emacs 사용자를 위한 Chrome 확장 프로그램을 게시해 보았습니다.

이 글은 Emacs Advent Calendar 2019 22일째 글입니다

개요



Emacs 키 바인딩으로 Chrome을 조작할 수 있는 Extension 를 공개해 보았으므로, 그 소개가 됩니다.


배경



저자는 이전에 메인 브라우저로 Chrome이 아닌 Firefox를 사용했습니다. 왜냐하면 Firefox에는 Firemacs라는 Emacs 사용자를 위한 애드온이 있었고, Chrome에는 그 대신이 없었기 때문입니다. 그러나, 특정 파괴적인 업데이트 에 의해 Firefox의 애드온이 엄청나게 사용할 수 없게 되었기 때문에, Chrome에의 이행을 강요당했다고 하는 경위가 있습니다. 단지 Chrome에는 Emacs 키 바인딩으로 탭 조작이나 스크롤링을 실시할 수 있는 Extension이 당시 존재하지 않았기 때문에, Vimium 했어요. 그래서 처음부터 Emacs 키 바인딩을 사용할 수있는 Chrome Extension이 있으면 편리하다고 생각한 것이 공개 계기입니다.

덧붙여서 Vimium을 Emacs풍에 사용하는 방법에 관해서는, 아래가 참고가 됩니다.
Chrome vimium에서 Emacs 키 바인딩으로 시도
Vimium을 Emacs와 같이 행복하게 만드는 이야기

기능



Emacs 키 바인딩으로 브라우저를 조작할 수 있습니다. 예를 들어 C-v/M-v로 스크롤 다운/업하거나, C-b/C-f로 탭을 좌우로 이동하거나 등입니다. 일례를 올리면 아래와 같은 키 바인드를 사용할 수 있습니다. 또한 설정에서 키를 변경하여 나름대로 사용자 정의할 수 있습니다.
# Navigating the current page
    <c-h>       show the help dialog for a list of all available keys
    <c-b>       scroll left
    <c-n>       scroll down
    <c-p>       scroll up
    <c-f>       scroll right
    <c-m-,>     scroll to top of the page
    <c-m-.>     scroll to bottom of the page
    <c-v>       scroll down half a page
    <m-v>       scroll up half a page
    <c-x><c-f>  open a link in the current tab
    <c-x><a-F>  open a link in a new tab
    <m-r>       reload
    <a-s>       view source
    <c-g><c-u>  copy the current url to the clipboard
    <c-g><c-l>  copy a link url to the clipboard
    <c-x>o      cycle forward to the next frame

# Manipulating tabs
    <c-b>          go one tab left
    <c-f>          go one tab right
    <c-x><up>      go to the first tab
    <c-x><down>    go to the last tab
    <c-g><c-t>     create tab
    <c-x>4         duplicate current tab
    <c-x>0         close current tab
    <c-g><c-r>     restore closed tab (i.e. unwind the 'x' command)
    <c-x>b         search through your open tabs
    <c-x>5         move current tab to new window
    <a-p>          pin/unpin current tab

구현



Extension 구현은 Vimium 소스 코드 을 fork하여 키 바인딩을 Emacs 스타일로 다시 작성한 것만 입니다. 리포지토리는 아래와 같이 공개하고 있으므로, 수정 등 필요한 것 같은 부분이 있으면 자유롭게 PR등 보내 주시면 좋겠습니다.
htps : // 기주 b. 코 m / 마에다 - 카즈야 / ch 로메마 CS

주의점



Chrome 사양 탓인지 일부 페이지 (Chrome 설정 화면 등)에서 키 바인딩이 작동하지 않을 수 있습니다. 원인은 조사 중이지만 일부 바로 가기 키와 충돌하거나 원래 확장 프로그램이 비활성화되었을 수 있습니다.

요약



그 외 눈치채는 점이 있으면, 아래와 같이 Github상의 Issue에 올려 주시면 좋겠습니다. 원래는 자신용으로 작성한 Extension입니다만, 사용하기 어려운 부분 등이 있으면 수시로 개선해 나가고 싶습니다.
htps : // 기주 b. 코 m / 마에다 - 카즈야 / ch 로메마 cs / 이스에 s

좋은 웹페이지 즐겨찾기