开发环境搭建

neovim(4.0.1) install

  1. Download

    1
    2
    3
    4
    5
    curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim.appimage

    chmod u+x nvim.appimage

    ./nvim.appimage
  2. Support python

    1. curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    2. sudo python2.7 get-pip.py
    3. sudo python3 get-pip.py
    4. _usr_bin/pip2.7 install neovim
    5. _usr_bin/pip3 install neovim
  3. 运行 ::checkhealth provider:: 检查python是否安装成功

    1. 如果还没有成功 则运行:
      1
      2
      sudo yum install python-neovim
      sudo yum install python3-neovim
  4. 配置nvim inint.vim 引导初始化配置文件
    touch ~_.config_nvim/init.vim

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    set runtimepath^=~/.vim runtimepath+=~/.vim/after
    let &packpath = &runtimepath
    let g:clipboard = {
    \ 'name': 'myClipboard',
    \ 'copy': {
    \ '+': 'tmux load-buffer -',
    \ '*': 'tmux load-buffer -',
    \ },
    \ 'paste': {
    \ '+': 'tmux save-buffer -',
    \ '*': 'tmux save-buffer -',
    \ },
    \ 'cache_enabled': 1,
    \ }
    source ~/.vimrc

tmux(2.9) install

  1. sudo yum install glibc-static ncurses-devel
  2. sudo yum install libeven-devel
  3. sudo yum install tmux
  4. tmux 复制与系统剪贴板打通
    Mac 下如果用 iterm2 可以在 preference 下选择 Applications in
    terminal may access clipboard。
    这样 tmux 可以将复制文本同步到系统剪贴板。
    如何实现双向同步:
    `reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer`    
    以上代码可以将系统剪贴板异步地复制进tmux-buffer
    
  5. nvim 会自动打通tmux 的 clipboard

    1. 用 help clipboard 可查看
    2. vimrc文件配置

      1
      2
      set clipboard=unnamed
      set clipboard+=unnamedplus
    3. 以上代码会将vim *&+剪贴板替换为系统剪贴板

关于ssh tmux vim copy

在远程ssh 打通tmux 和 vim 剪贴板

在item2中 打开 ::Applications in::
::terminal may access clipboard:: 后,远程ssh中的tmux 会自动将复制文本传输到本地剪贴板上面。

远程开发机上面最新版本的nvim会自动将剪贴板与开发机上面的tmux打通,共享开发机系统剪贴板。无需在使用第三方工具或者xclip来实现打通。

远程 neovim copy 到本地剪贴板
目前还没有比较完美安全的解决方案。大部分开发者都使用::ssh -R::反向打通开发机与本地的链接。监听vim copy 事件,再将复制的文本通过ssh通道发给本地。