VIM与系统剪贴板的复制粘贴

2024-04-20 14:32

本文主要是介绍VIM与系统剪贴板的复制粘贴,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 前提
  • 配置vim
  • 参考

vim中的复制和粘贴命令分别是yp,在不需要和系统交互剪贴板数据时还好,一旦要复制外部数据到vim中或者将vim中的数据复制到外部,这两个命令就无效了,只能用鼠标选中再右键复制粘贴。虽然和windows下的Ctrl CCtrl V不同,但vim可以通过配置实现和系统剪贴板的“沟通”。
需要注意的是Ctrl yCtrl pvim 中有特殊含义,使用以下设置后会覆盖默认设置

前提

开始前需要先查看vim是否已经支持clipboard功能,使用vim --version | grep clipboard命令查看,已经支持时其前有+

image-20210324203004639

如果其前为-号,执行sudo apt install vim-gtk安装vim-gtk即可(或者安装gvim,非debian系的系统不是用apt命令,根据系统变动就行,都差不多),安装完成后再执行vim --version | grep clipboard此时应该已经支持clipboard功能。

配置vim

此时如果在vim外复制了文本,要粘贴到打开的vim文件内,只需在normal模式下(如果不知道当前在哪个模式就先按一次ESC键)执行"*p,注意是三个键连续输入,由于要输入双引号和星号,因此需要先按下Shift键,再分别按下" *(过程中Shift不要放下),最后按下p(小写,此时不要按Shift),如果没问题应该可以将系统剪贴板数据粘贴到vim中;

类似的,要将vim中的数据复制到vim外,需要回到normal模式先按v进入visual模式,移动光标选中目标文本后,在visua模式下执行" + y即可将vim数据复制到系统剪贴板,在vim外执行Ctrl V即可完成数据粘贴。

vim支持自定义快捷键,使用vim打开~/.vimrc文件这是当前用户的vim配置文件,vim会读取配置文件中的内容完成相应的配置,在这个配置文件中添加(中文前的“号是注释)

vnoremap <C-y> "+y   "支持在Visual模式下,通过C-y复制到系统剪切板
nnoremap <C-p> "*p   "支持在normal模式下,通过C-p粘贴系统剪切板

添加完成后按ESC回到normal模式输入:wq保存并退出,此后就可以像Ctrl CCtrl V那样愉快地使用Ctrl yCtrl p进行复制粘贴了。

参考

  • vim与系统剪贴板之间的复制粘贴

  • 如何将 Vim 剪贴板里面的东西粘贴到 Vim 之外的地方

这篇关于VIM与系统剪贴板的复制粘贴的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/920513

相关文章

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3