Neovim에서 채팅하고 싶어요.

4501 단어 Neovimtech

개시하다


안녕하세요.나 히가시야.
이 기사는 Vim Advent Calendar 2020 열흘째 보도입니다.
이번에는 네오비임에서 채팅하고 싶어서 채팅해야 한다.

쓸것

  • Neovim v0.5.0
  • Python
  • 만든 물건


    했어.
    여기 있다!
    비엠에도 대응하고 싶지만, 지금은 네오비엠만 지원한다.
    noachat.nvim
    Image from Gyazo

    해설


    실시간 채팅을 시도했다.

    실시간 채팅 섹션


    WebSocket을 사용하고 있습니다.
    당초 "VimScript를 쓰면 웹소켓이 되지 않을까~"라고 생각했지만, 지금의 내 기술로는 안 된다고 생각해 네오비엠의remote pluggin과 파이톤을 사용하기로 했다.

    투고 부분


    채팅에 사용되는recv를while로 전송하기 편리하도록 수신 과정에서send를 사용하여 발송할 수 없습니다.
    그럼 문자는 어떻게 보내요?
    고민하면서 echo 지령을 할 때, "echo를 사용할 수 있다면 시스템도 쓸 수 있겠죠?"이렇게 생각하다
    서버 측에post 메시지를 급히 보내면 연결된 클라이언트가 모두 그 메시지를 보내는 기능을 실현했다.
    플러그인 측도curl이 메시지를 보내는 함수를 설치해 봤는데 이곳에서 순조롭게 진행될 수 있다는 것을 발견하고 계속 사용하기로 했습니다.
    구상의 승리.(remote plugene에 대해 잘 모르기 때문에 설치 방법이 좋을 수 있습니다.)

    서버


    Go에 설치되었습니다.
    창고는 여기 있습니다.
    noachat
    DB를 사용한 메시지가 저장되지 않았습니다.
    다시 불러오면 과거 로그를 읽을 수 없습니다.

    설치하다.


    그럼 실제로 사용해 보세요.
    서버에서 GCP 호스트를 사용하고 있습니다.
    먼저 필요한 Python의 프로그램 라이브러리를 설치합니다.
    pip install --user pynvim websocket-client
    
    다음은 플러그인 설치입니다.
    dein.vim
    call dein#add('higashi000/noachat.nvim')
    
    vim-plug
    Plug 'higashi000/noachat.nvim'
    
    설치가 완료되면 :UpdateRemotePlugin를 수행합니다.
    상술한 모든 것이 끝난 후 init.vim에 다음 설정을 쓰십시오.
    설정 섹션은 Shogodenite.nvim를 참조합니다.
    autocmd FileType noachat call s:noachat_settings()
    function! s:noachat_settings() abort
        map <silent> nl <Plug>(noachat_leave)
    endfunction
    
    let g:noachat#ServerURL = 'noa.higashi.dev'
    let g:noachat#https = v:true
    
    let g:noachat#UserName = 'your user name'
    
    <Plug>(noachat_leave)에 채팅의 종료 키 귀속을 설정합니다.
    그나저나 네오비엠:q!이 끝나도 연결이 끊긴다.g:noachat#ServerURL에 서버의 도메인 이름을 씁니다.
    서버가https를 지원할 때g:noachat#https 진짜로 설정합니다.g:noachat#UserName에 자신의 이름을 쓰세요.
    채팅의 사용자 이름이 됩니다.(입력하지 않으면 noname):NoaChatPostMsg에서 메시지를 보낼 수 있습니다.
    준비 끝!
    init.vim 다시 불러오기:StartNoachat채팅 시작합시다!

    웹 버전 정보


    네오비엠뿐만 아니라 웹 버전도 설치를 시도했다.
    여기.
    이곳에서 자신의 네오비엠과 메시지를 주고받으면 혼자서 실시간으로 채팅하는 느낌을 경험할 수 있다.

    과제.


    문자를 받을 때 상당히 불편해진다.(기타remote plugen 사용 불가 등)
    나는 자유롭지 않게 변한 부분을 하나하나 없애고 싶다.

    최후


    나는 이 서버가 내년 1월까지 운행될 것이라고 생각한다.(이동하지 않은 보고서를 제출하십시오.)
    공격을 멈추세요.나는 내 지갑이 유료로 인해 죽을 것이라고 생각한다.(공격할 수 있는 곳이 있으면 알려주세요.)
    생각나면 누구를 초대해서 채팅을 즐겨주세요.

    좋은 웹페이지 즐겨찾기