随笔 - 26  文章 - 0  trackbacks - 0
<2018年1月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿

随笔分类

随笔档案

收藏夹

调试技巧

搜索

  •  

最新评论

阅读排行榜

评论排行榜

在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:
set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)
set expandtab

 

对于已保存的文件,可以使用下面的方法进行空格和TAB的替换: 
TAB替换为空格: 
:set ts=4
:set expandtab
:%retab!

 

空格替换为TAB:
:set ts=4
:set noexpandtab
:%retab!

 

加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。

posted @ 2017-11-30 11:51 长戟十三千 阅读(6) | 评论 (0)编辑 收藏

vim代码补全

现在的图形界面的IDE(Integrated Development Environment)一般具有语法高亮,语法检查,自动补全功能,大大提高了编程的效率。

vim作为文本编辑器其强大的编辑能力很大部分来自于普通模式命令,用户使用这些命令可以快速的在文档中移动、定位、查找、替换删除、而不用使用鼠标去完成这些操作。vim另一个强大之处是支持各种插件安装,用户可以根据功能需求和习惯安装需要的插件。本文将介绍两个非常强大的开源vim插件使得vim具有IDE一样的功能,提高使用vim编程的效率。这两个vim插件分别是spf13 和 YouCompleteMe

1. vim7.4添加Lua支持

之所以安装支持Lua的vim7.4,是因为spf13需要Lua支持。

1.1 安装Lua和LuaJit

Centos的官方源中包含Lua,可以直接使用Yum命令安装

sudo yum install lua lua-devel -y

Luajit不在Centos的官方源中,需要源码安装

wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar -xzvf LuaJIT-2.0.4.tar.gz cd LuaJIT-2.0.4 // 使用默认安装路径 make sudo make install

1.2编译安装vim7.4

// git好处是以后可以方便地更新 git clone git@github.com:vim/vim.git tar xzvf vim-7.4.tar.bz2 cd vim74 ./configure --prefix=/usr/local/bin/vim74 \ --with-features=huge \ --with-luajit \ --enable-pythoninterp=yes \ --with-python-config-dir=/usr/lib64/python2.7/config \ --enable-luainterp=yes \ --enable-fail-if-missing --enable-fail-if-missing make sudo make install

2. 安装spf13

自己配置vim往往很繁琐,需要对vim配置很熟悉,spf13-vim不仅配置精良而且包含一整套精心挑选的插件,省去了很多配置细节。

curl https://j.mp/spf13-vim3 -L > spf13-vim.sh && sh spf13-vim.sh

3. 安装和配置YouCompleteMe

3.1 安装YouCompleteMe

YouCompleteMe是一个vim插件,而在spf13中指定安装YouCompleteMe插件也很方便,只需要在文件~/.vimrc.before.local中添加下面一行,然后使用Vundle安装命令即可。

let g:spf13_bundle_groups=['general', 'youcompleteme']

Vundle命令安装:

vim :BundleInstall!

编译ycm_core.so:
ycm自动补全需要动态库ycm_core.so,需要用户自己编译,用户可以选择编译全部功能或者选择只支持C/C++自动补全:

cd ~/.vim/bundle/YouCompleteMe/ ./install.py --all #编译支持所有功能 or ./install.py --clang-completer #只支持C/C++补全

3.2 YouCompleteMe配置

YouCompleteMe有两个需要配置的地方一个是.virmc,另一个是.ycm_extra_conf.py。

.vimrc位于用户home目录下,用来配置YouCompleteMe的全局行为,例如全局ycm_extra_conf.py路径,代码跳转快捷键映射。我的.vimrc配置如下:

" YouCompleteMe {         if count(g:spf13_bundle_groups, 'youcompleteme')             let g:acp_enableAtStartup = 0             " global conf which is needed to resolve name in system include             " file or other  third-part include file             let g:ycm_global_ycm_extra_conf = '~/.vim/data/ycm/.ycm_extra_conf.py'              " enable completion from tags             let g:ycm_collect_identifiers_from_tags_files = 1             let g:ycm_seed_identifiers_with_syntax = 1             let g:ycm_confirm_extra_conf = 0             let g:ycm_cache_omnifunc=0             let g:ycm_key_invoke_completion = '<C-;>'               nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>             nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>

上面配置中全局.ycm_extra_conf.py路径很重要,如果不配置将无法解析C/C++头文件

.ycm_extra_conf.py 模版位于./YouCompleteMe/third_party/ycmd/cpp/ycm/,其中-isystem flag用来配置系统头文件路径,-I用来配置第三方头文件路径, 一个支持C/C++工程的ycm_extra_conf.py部分配置文件如下:

'-std=c++11', #'-std=c99', # ...and the same thing goes for the magic -x option which specifies the # language that the files to be compiled are written in. This is mostly # relevant for c++ headers. # For a C project, you would set this to 'c' instead of 'c++'. '-x', 'c++', '-isystem', '../BoostParts', #-isystem: system include file path '-isystem', '/usr/include', '-isystem', '/usr/local/include', '-isystem', '/usr/include/c++/4.8.5', ]

YouCompleteMe查找.ycm_extra_conf.py过程是在当前编辑文件所在目录查找,然后逐级向上查找,如果没有找到则使用全局配置文件。

最后截图:

posted @ 2017-11-24 15:40 长戟十三千 阅读(7) | 评论 (0)编辑 收藏
[1]Install some packages.
# install from EPEL

[root@dlp ~]# 
yum --enablerepo=epel -y install composer php-bcmath
[2]Install AMQP client library.
[cent@dlp ~]$ 
composer require php-amqplib/php-amqplib 

Using version ^2.6 for php-amqplib/php-amqplib ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev)   - Installing php-amqplib/php-amqplib (v2.6.3)     Downloading: 100%  Writing lock file Generating autoload files  
[cent@dlp ~]$ 
composer install 

Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Nothing to install or update Generating autoload files 
[3]This is an example of sending message on PHP.
For example, connect with RabbitMQ user "serverworld", virtualhost "my_vhost".
[cent@dlp ~]$ 
vi send_msg.php
<?php require_once __DIR__ . '/vendor/autoload.php';  use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage;  $connection = new AMQPStreamConnection('127.0.0.1', 5672, 'serverworld', 'password', '/my_vhost');  $channel = $connection->channel(); $channel->queue_declare('Hello_World', false, false, false, false);  $msg = new AMQPMessage('Hello RabbitMQ World!'); $channel->basic_publish($msg, '', 'Hello_World'); echo " [x] Sent 'Hello_World'\n";  $channel->close(); $connection->close(); ?>  
[cent@dlp ~]$ 
php send_msg.php 

 [x] Sent 'Hello_World' 
[4]This is an example of receiving message on PHP.
[cent@node01 ~]$ 
vi receive_msg.php
<?php require_once __DIR__ . '/vendor/autoload.php'; use PhpAmqpLib\Connection\AMQPStreamConnection;  $connection = new AMQPStreamConnection('127.0.0.1', 5672, 'serverworld', 'password', '/my_vhost'); $channel = $connection->channel();  $channel->queue_declare('Hello_World', false, false, false, false);  echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";  $callback = function($msg) {     echo " [x] Received ", $msg->body, "\n"; };  $channel->basic_consume('Hello_World', '', false, true, false, false, $callback);  while(count($channel->callbacks)) {     $channel->wait(); } ?>  
[cent@node01 ~]$ 
php receive_msg.php 

 [*] Waiting for messages. To exit press CTRL+C  [x] Received Hello RabbitMQ World!
posted @ 2017-11-16 17:53 长戟十三千 阅读(3) | 评论 (0)编辑 收藏
gitlab unicorn settings
https://docs.gitlab.com/omnibus/settings/unicorn.html

Unicorn settings 

If you need to adjust the Unicorn timeout or the number of workers you can use the following settings in /etc/gitlab/gitlab.rb. Run sudo gitlab-ctl reconfigure for the change to take effect.

unicorn['worker_processes'] = 3 unicorn['worker_timeout'] = 60 
Minimum required worker_processes is 2 in order for the web editor to work correctly, see gitlab-ce#18771

Edit this page
posted @ 2017-11-16 11:49 长戟十三千 阅读(4) | 评论 (0)编辑 收藏
rabbitmqctl add_user test test 
rabbitmqctl set_user_tags test administrator
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"

posted @ 2017-11-09 10:51 长戟十三千 阅读(2) | 评论 (0)编辑 收藏

一、Install Erlang:

因为RabbitMQ是基于Erlang开发的,所以首先需要安装Erlang。

安装的方式有很多种,我比较喜欢直接使用yum安装,其他方式请自行Google。

因为yum官方源没有Erlang,所以需要添加EPEL源,具体方式如下:

su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm'

su -c 'yum install foo'

以上是针对CentOS7的命令。

附上centos5和centos6的操作命令:

For EL5:

su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm'

su -c 'yum install foo'

For EL6:

su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm'

su -c 'yum install foo'

添加源完成后,执行yum命令:

yum install erlang

如果顺利的话,应该Erlang成功安装。

二、安装RabbitMQ:

首先下载安装文件(我安装的是目前最新版,如果想尝试安装其他版本,在官网找吧):

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

yum install rabbitmq-server-3.6.5-1.noarch.rpm

好哒,不出意外,mq就安装成功了。如果有意外,只能靠你的聪明才智去解决了,编程就是这样不断的和bug作斗争。

三、设置开机启动&启动

chkconfig rabbitmq-server on

service rabbitmq-server start

四、安装web管理界面

rabbitmq-plugins enable rabbitmq_management

现在可以通过http://ip:15672访问了。



作者:Luomeng
链接:http://www.jianshu.com/p/ea6296406995
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2017-11-08 16:17 长戟十三千 阅读(14) | 评论 (0)编辑 收藏
pre: 更换阿里云的yum 源

yum install -y autojump
yum install autojump-zsh
source /etc/profile.d/autojump.sh
posted @ 2017-11-08 15:07 长戟十三千 阅读(7) | 评论 (0)编辑 收藏

使用Linux肯定少不了使用yum来安装软件,CentOS7默认的yum源貌似是网易的?反正给我的感觉是又慢又旧,于是想更换到更快的阿里云的yum源。

首先得安装wget

sudo yum -y install wget

安装好wget后开始我们的yum源切换啦~

  1. 备份原来的yum源
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  1. 设置aliyun的yum源
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  1. 添加EPEL源

EPEL(http://fedoraproject.org/wiki/EPEL)是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上 EPEL后,可以像在 Fedora 上一样,可以通过 yum install package-name,安装更多软件。

sudo wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo

清理缓存并生成新的缓存

sudo yum clean all  
sudo yum makecache 

本文属转载,原文地址:http://blog.csdn.net/skykingf/article/details/51953700

posted @ 2017-11-08 15:04 长戟十三千 阅读(12) | 评论 (0)编辑 收藏

在服务器上安装一些服务的时候,需要访问进口资源,因此设置了一下全局HTTP代理(用完记得关掉。。。)

 

// 例如代理服务器地址为:10.2.1.240
// 端口号为:8123

vi /etc/profile

// 在最后添加六行
https_proxy=10.2.1.240:8123
http_proxy=10.2.1.240:8123
ftp_proxy=10.2.1.240:8123
export https_proxy
export http_proxy
export ftp_proxy

// 使设置立即生效
source /etc/profile

posted @ 2017-11-06 17:54 长戟十三千 阅读(10) | 评论 (0)编辑 收藏

解决mysql“Access denied for user 'root'@'IP地址'

在MYSQL 中,用远程软件登陆服务器,有时出现:Access denied for user 'root'@'localhost' 

出现这种问题,主要的原因就是权限配置的时候 没有配置正确。

解决方法如下:

当用Linux/unix的tty 登陆进MYSQL 时, mysql -u root -p 会提示你输入密码,输入正确的密码后正常登陆。

然后在提示符下,打命令:show grants; 会出现root如下的权限表示:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '565491d704013245' WITH GRANT OPTION

 

此时,注意看那个“@”后面的,是localhost 意思是本机登陆,,此时,如果你用远程登陆软件来登陆的话,会出现错误提示:Access denied for user 'root'@'IP地址'。。IP地址那块是你远程机器的IP地址。也就是服务器在告诉你,当你用“IP地址”登陆时,是拒绝的,因为,MYSQL权限设置里并没有给你对应你IP地址登陆的权限。因为刚才的SHOW GRANTS;命令结果已经告诉你了,仅限本机登陆。

那解决方法如下:此时,你可以尝试用空密码连接,是可以连接进入的。或者你在服务器的tty 或者pts操作台中进入服务器后执行如下的命令:

grant all privileges on *.* to 'root'@'%' with grant option;

意思是让root在所有机器都可以登陆到MYSQL服务器(拥有所有权限)。当执行完这条命令后,用客户端登陆,此时,是需要输入口令了。

 

 

GRANT ALL PRIVILEGES

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 

Sql代码 复制代码 

   1. mysql -u root -pvmwaremysql>use mysql;  
   2. mysql>update user set host = '%' where user = 'root';  
   3. mysql>select host, user from user; 

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 

Sql代码 复制代码

  1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH

      GRANT OPTION;  
  2.FLUSH   PRIVILEGES; 

 

 

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码 

Sql代码 复制代码 

   1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY   
   2. 'mypassword' WITH GRANT OPTION;   
   3. FLUSH   PRIVILEGES;  

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 
'mypassword' WITH GRANT OPTION; 
FLUSH   PRIVILEGES; 



如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码 
Sql代码 复制代码 

   1. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY   
   2. 'mypassword' WITH GRANT OPTION;   
   3. FLUSH   PRIVILEGES;  

GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 
'mypassword' WITH GRANT OPTION; 
FLUSH   PRIVILEGES; 


注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。 

另外一种方法. 

在安装mysql的机器上运行: 
1、d:\mysql\bin\>mysql -h localhost -u root 
//这样应该可以进入MySQL服务器 
2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION 
//赋予任何主机访问数据的权限 
3、mysql>FLUSH PRIVILEGES 
//修改生效 
4、mysql>EXIT 
//退出MySQL服务器 
这样就可以在其它任何的主机上以root身份登录啦!

posted @ 2017-10-18 17:55 长戟十三千 阅读(5) | 评论 (0)编辑 收藏
仅列出标题  下一页