vim中与系统的粘贴和复制

以前就遇到过的问题。有如下情景:

1.假设现在我要将文件a的部分内容复制到文件b中,一般情况,我会用vs或者sp命令打开这两个文件然后用yp进行复制粘贴。但是如果分别用vim打开这两个文件就不能完成上述动作。
2.假设我先在要把vim打开的源代码中的部分内容复制到博客中,一般我会用vim编辑好以后,退出用gedit打开,或者cat一下,再复制到系统剪切板,再粘贴。

今天,对于vim这个没办法跟“外界”交流的特性忍够了,决定解决一下。

1.首先,查看vim版本是否支持clipboard

vim --version | grep "clipboard"1

结果如下:

这里写图片描述

clipboard 前面有一个小小的减号,说明不支持。

2.如果不支持的话,需要安装图形化界面的vim,或者重新编译vim

sudo apt-get install vim-gnome1

ubuntu中添加服务以及开机自启

自定义脚本 编写自己的需要开启自启的脚本,如下: #!/usr/bin/env ruby `cd /home/mc/code/rails_app/master_crawler_trm && nohup rake real_time_extract_word > /dev/null 2&>1` 启动脚本 #!/usr/bin/env ruby start = " sudo -u mc /home/mc/bin/real_time_extract_words " stop = "ps -ef | grep real_time_extract_word | grep -v grep | cut -c 9-15 | xargs kill -9" action = ARGV[0] if action == 'start' system(start) puts "启动成功" elsif action == 'stop' system(stop) puts "

Rails连接多个数据库

假如已经连接的的数据库名是 word_development, 现在需要添加一个名为 trademark_development 和 trademark_test 的本地数据库 步骤如下: 添加配置信息 在 config/database.yml 添加如下信息 trademark_default: &trademark_default adapter: postgresql encoding: unicode pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> trademark_development: <<: *trademark_default database: trademark_development # 如果是远程的数据库添加如下信息 #username: username #password: 123456 #host: xxxx #port: xxx trademark_test: <<: *trademark_default database: trademark_test 关

触发器创建示例

摘抄自 《posrgreSQL 修炼之道 从小工到专家》 触发器(trigger)是一种由事件自动触发执行的特殊的存储过程,这些事件可以是对一个表进行 INSERT,UPDATE,DELETE 等操作 触发器经常用于加强数据库的完整性约束和业务规则上的

Rails5中的autoload和eager_load

翻译并整理: https://collectiveidea.com/blog/archives/2016/07/22/solutions-to-potential-upgrade-problems-in-rails-5 https://blog.bigbinary.com/2016/08/29/rails-5-disables-autoloading-after-booting-the-app-in-production.html autoload和eager_load autoload: 在常量使用之前不会加载,只有当使用一个当前不存在常量时,会在 autoload_paths 寻找,然后加载它,当在给定的目录中找不到这个常量时,就会触发错误。并且 autoload 是非线程安

ruby中hash的排序

翻译自 https://medium.com/@florenceliang/some-notes-about-using-hash-sort-by-in-ruby-f4b3a700fc33 ruby中的sort和sort_by 是两个非常有用的工具,我们可以按照自己的想法排序。比如我们可以按照名字字母表或者名字的长短进行排序。但是ruby文档中却没有过多的说明,因此本文主要说明一下

用ruby执行系统命令

反引号 返回标准输出 output = `ls` puts "output is #{output}" Result of above code is $ ruby main.rb output is lab.rb 反引号执行系统命令时,会把异常抛给主线程 反引号会从主进程新开一个进程执行命令,如果子进程发生异常,会传递给主进程,如果主进程没有对异常进行处理,主

xpath用法

整理自https://devhints.io/xpath#prefixes Descendant selectors h1 //h1 div p //div//p ul > li //ul/li ul > li > a //ul/li/a div > * //div/* :root / :root > body /body Attribute selectors #id //*[@id="id"] .class //*[@class="class"] …kinda input[type="submit"] //input[@type="submit"] a#abc[for="xyz"] //a[@id="abc"][@for="xyz"] a[rel] //a[@rel] a[href^='/'] //a[starts-with(@href, '/')] a[href$='pdf'] //a[ends-with(@href, '.pdf')] a[href*='://'] //a[contains(@href, '://')] a[rel~='help'] //a[contains(@rel, 'help')] …kinda

yakuake配置color-theme

打开管理配置, –> appearance –> new 给新的 color theme 命名(gruvbox),然后点击应用,保存。 打开 .kde/share/apps/konsole/gruvbox.colortheme,清空文件内容 在 manjaro 中, 该文件位于 ~/.local/share/konsole/ 目

rails发送qq邮件的配置

rails 中使用邮件服务是非常方便的,直接加配置文件就可以,参考指南 qq 邮箱正确的配置如下 production.rb / development.rb ActionMailer::Base.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default :charset => "utf-8" ActionMailer::Base.smtp_settings = { :address => 'smtp.qq.com', :port => 465, :domain => 'qq.com', :user_name => ENV['qq_mail_address'] # 授权码 :password => ENV['qq_mail_address'] :authentication => 'plain', :ssl => true, :enable_starttls_auto => true } 切记,qq 邮箱后台要开启

postgres系列之用户及权限管理

在初始化数据库系统时,有一个预定义的超级用户,这用户的名称与初始化该数据库的操作系统用户名相同,默认是 postgres,在这个超级用户连接数据库,然后创建出更多的用户。 创建用户和角色 创建用户与角色的语

ruby_heredoc的用法

整理自ruby-china 基础的用法 def print_heredoc puts <<EOF this is the first line this is the second line EOF end print_heredoc 输出: this is the first line this is the second line 如果你觉得代码太难看(这根本不符合 Ruby 的风格),你可能会这样写: def print_heredoc puts <<EOF this is the first line this is the second line EOF end print_heredoc 你会发现

rails_多态关联

什么是多态关联 假如有三个模型,分别是 用户, 产品, 图片。图片为用户所有,也为产品所有。我们可以创建两个 picture 的模型,如下 rails g modle picture_user user_id:integer name:string url:string rails g modle picture_product product_id:integer name:string url:string class PictureUser < ApplicationRecord belongs_to :user end class PictureProduct < ApplicationRecord belongs_to :product end 这样我们就可以使用user.p

rails_action_cable使用

安装 redis gem redis bundle install 修改 cable.yml development: adapter: redis 生成订阅 rails g channel block speak 连接设置 连接是客户端-服务器通信的基础。每当服务器接受一个 WebSocket,就会实例化一个连接对象。所有频道订阅(channel subscription)