REPL: 读取-求值-输出”循环(英语:Read-Eval-Print Loop,简称REPL)是一个简单的,交互式的编程环境。

python作为一个动态语言,REPL在开发过程中起到了很大的作用。

可是一直以来用vim写python没有一个很好的,简便的提供repl功能。也有类似的插件,比如vim-slime,但是它已经很久没有更新并且使用起来需要tmux非常的复杂。

最近发现vim8提供了terminal功能和通讯方式。我使用这个功能实现了一个vim的repl插件。


sillybun/vim-repl​github.com

插件运行环境要求

  • MacOS, Windows, Linux
  • vim +terminal, +timers
  • vim最好有+python3或者+python支持

插件的功能

这个插件的功能是在vim中打开一个terminal,然后在文件中可以通过快捷键把选中的文本扔给terminal中进行执行。

通过按<leader>r打开一个REPL窗口⬇️:

在普通模式下按<leader>w把当前行发送到REPL窗口⬇️:

在普通模式下在代码块的第一行按<leader>w,把一块代码发送到REPL窗口⬇️:

在选择模式下选中多行代码按<leader>w把一块代码发送到REPL窗口⬇️:

在python程序中进行代码调试⬇️:

可以这样设置:

autocmd Filetype python nnoremap <F12> <Esc>:REPLDebugStopAtCurrentLine<Cr>
autocmd Filetype python nnoremap <F10> <Esc>:REPLPDBN<Cr>
autocmd Filetype python nnoremap <F11> <Esc>:REPLPDBS<Cr>

如此后快捷键的作用为:

  • F12: 在当前行设置断点并运行
  • F10: 运行一行(不进入函数)
  • F10: 运行一行(进入函数)

安装方式:

Plugin 'sillybun/vim-repl'

推荐配置:

Plug 'sillybun/vim-repl'
let g:repl_program = {'python': 'ipython','default': 'zsh','r': 'R','lua': 'lua',}
let g:repl_predefine_python = {'numpy': 'import numpy as np','matplotlib': 'from matplotlib import pyplot as plt'}
let g:repl_cursor_down = 1
let g:repl_python_automerge = 1
let g:repl_ipython_version = '7'
nnoremap <leader>r :REPLToggle<Cr>
autocmd Filetype python nnoremap <F12> <Esc>:REPLDebugStopAtCurrentLine<Cr>
autocmd Filetype python nnoremap <F10> <Esc>:REPLPDBN<Cr>
autocmd Filetype python nnoremap <F11> <Esc>:REPLPDBS<Cr>
let g:repl_position = 3

可选参数,等号后面是默认值(None表示没有缺省值):

let g:repl_width = None                           "窗口宽度
let g:repl_height = None                          "窗口高度
let g:sendtorepl_invoke_key = "<leader>w"          "传送代码快捷键,默认为<leader>w
let g:repl_position = 0                             "0表示出现在下方,1表示出现在上方,2在左边,3在右边
let g:repl_stayatrepl_when_open = 0         "打开REPL时是回到原文件(1)还是停留在REPL窗口中(0)

推荐配置:

tnoremap <C-h> <C-w><C-h>
tnoremap <C-j> <C-w><C-j>
tnoremap <C-k> <C-w><C-k>
tnoremap <C-l> <C-w><C-l>

vim插件自动补齐_给VIM添加REPL相关推荐

  1. vim插件自动补齐_(转)Vim自动补全神器:YouCompleteMe

    原文出处:http://blog.jobbole.com/58978/ 第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名.本来打算在实训期间来完成安装的,无奈网实在不给力,也就 ...

  2. vim插件自动补齐_VIM自动补全插件:deoplete

    Nvim用的是Shougo开发的NCM,但是在VIM 8+就要用同一个作者开发的Deoplete. 注意:这里只讲怎么给vim8安装. 安装 第一步:安装所有依赖 # 安装VIM 8 # .... # ...

  3. vim插件自动补齐_Vim7.3.3使用Autocomplpop自动补全插件报错解决办法

    最近用上了vim7.3.3,安装自动插件AutoComplPop是,总报错: Error detected while processing /home/carlos/.vim/plugin/acp. ...

  4. vim使用—实现程序的自动补齐(C语言)

    使用过Source Insight的人一定对它的自动补全功能印象深刻,在很多的集成开发环境中,也都支持自动补全.vim做为一个出色的编辑器,这样的功能当然少不了.至于如何实现程序自动补全,网上教程很多 ...

  5. python交互模式设置及VIM的tab补齐

    一.python交互模式设置 Python 解释器具有简单的行编辑功能. 在 Unix 系统上,任何 Python 解释器都可能已经添加了 GNU readline 库支持,这样就具备了精巧的交互编辑 ...

  6. 玩转VIM编辑器-自动补全

    玩转VIM编辑器-自动补全 自动补全需要前面有定义或者有词典导入. 自动单词补全 键 描述 CTRL-X CTRL-N 单词自动补全-下一个  -需要下一个的时候,直接CTRL-N即可. CTRL-X ...

  7. jupyter自动补齐插件安装后没有Nbextensions 不显示jupyter lab自动补全插件jupyter lsp的安装与使用

    此记录是给已经下载jupyter notebook,还想下载自动补齐插件的家人们借鉴: Stept1:关闭jupyter后台 Stept2:若已经安装过后,没有Nbextensions 建议卸载这个插 ...

  8. Racer: 自动补齐神器

    Racer:Rust 自动补齐神器 原文:Racer - code completion for Rust 翻译:Peter 翻译经验不足,有错请指教,勿喷 Racer全称为Rust Auto-Com ...

  9. sql server 语句自动补齐

    sql2008 sql语句自动补齐功能 sql2008的命令自动补齐功能在哪设置 包括查询的表明自动补齐 不想用插件 这个好像2008自带的有这个功能 难道我装的版本不对 楼主说的是自动联想功能吧,任 ...

最新文章

  1. 利用 socket 获取 tcp 包并解析的问题。
  2. 使用 XML 时尽量避免使用的技术
  3. 30天敏捷生活(8): 生成你的20/80待做事项列表
  4. 经典vim插件功能说明、安装方法和使用方法介绍(已更新)
  5. 团队项目:个人工作总结10
  6. 使用java读取文件并输出
  7. leetcode 810. 黑板异或游戏
  8. CentOS 6.5 下安装 Kibana5
  9. 获取linux数据段地址,获取kernel各个数据段,代码段的地址及范围
  10. java怎么得到1.5_如何使用httpclient获取SSL网站页面源码(jdk1.5)(中篇)
  11. OpenCV : 仿射变换
  12. python获取无忧网的招聘数据
  13. linux扫描仪安装程序,给扫描仪在Linux系统里安个家
  14. 《一》微信小程序简介
  15. excel如何全部取消隐藏_全部隐藏!
  16. 小学英语语法口诀巧记大全,简单实用!
  17. uniapp微信小程序引用标准版交易组件
  18. 07Linux打包解压文件-Exiting with failure status due to previous errors
  19. 去年12月份挑错经验总结
  20. 17福师《计算机应用基础,17春福师《计算机应用基础》在线作业2.doc

热门文章

  1. containsall_Java Vector containsAll()方法与示例
  2. NVelocity标签设置缓存的解决方案
  3. c# 获取电脑硬件信息通用查询类[测试通过]
  4. linux——常用指令
  5. kubernetes集群使用GPU及安装kubeflow1.0.RC操作步骤
  6. java 获得文件的行数据_Java 读取文件指定行数据
  7. 精通ASP.NET MVC ——模型绑定
  8. uni-calendar更改打点颜色实现签到和缺勤不同打点颜色效果
  9. 蒙特卡洛法求圆周率 c语言,c++蒙特卡洛法求圆周率
  10. ad文件服务器部署,AD 集成 – 配置 ADFS 登陆 - Seafile 服务器用户手册