Vim常用命令
Vim是服务器的标配,熟练使用有助于快速运维管理服务器。本文整理了一些Vim的常用操作和快捷键。 Vim操作 移动光标 k 上 h l 左 右 j 下 ^ 移动到该行第一个非空格的字符处 w 向前移动一个单词,将符号或标点当作单词处理 W 向前移动一个单词,不把符号或标点当作单词处理 b 向后移动一个单词,把符号或标点当作单词处理 B 向后移动一个单词,不把 ...
It’s not what you know, it’s how you think
Vim是服务器的标配,熟练使用有助于快速运维管理服务器。本文整理了一些Vim的常用操作和快捷键。 Vim操作 移动光标 k 上 h l 左 右 j 下 ^ 移动到该行第一个非空格的字符处 w 向前移动一个单词,将符号或标点当作单词处理 W 向前移动一个单词,不把符号或标点当作单词处理 b 向后移动一个单词,把符号或标点当作单词处理 B 向后移动一个单词,不把 ...
本周是国庆长假后的第一周,也是2016年最后一个季度的第一个工作日,为了能让我们的工作在今年有个漂亮的收尾,今天想和你聊聊工作效率方面的问题。 每天的事情太多,总是做不完,是现代人遇到的一个普遍问题,尤其是发展特别快的行业里(比如IT领域)的人或者创业者。唯一的解决方法恐怕就是一些事情不要做了,而不是把所有的事情凑合做完 ...
Qt5.6中使用的webview是基于chromium45来实现的,叫做QtWebEngine,之前使用QtWebkit已经被废弃,因此webview的兼容性也非常不错;不过由于引入了多进程架构,导致bridge机制比较复杂,需要引入WebChannel的概念,底层是使用websocket来实现的。 使用webview QMainWindow ...
chromium中管理自带的字符串和文件等一般使用pak包格式文件,本文介绍下向chromium的pak文件中添加自己定义的字符串的方法。 分析pak包字符串使用 例如,在chromium中使用pak包ui_strings中的定义的字符串的方式: #include "ui/base/l10n/l10n_util.h"#include "ui/strings/grit/ui_strings.h" base::string16 str = l10n_util::GetStringUTF16(IDS_APP_CANCEL) 在中文翻译下,str值代表“取消” 分析下几个关键点: 1、IDS_ ...
range-for 遍历一个range,对逐个元素做操作,比起之前的for循环,语法更简洁,可读性更高,同时引入range的概念大大提高适用范围。 语法 for ( range_declaration : range_expression ) loop_statement range_declaration 元素类型的命名变量声明,可以是原始类型,引用或auto声明 range_expression 表示范围的表达式,可以是原生数组,容器对象,实现begin和end的自定义类型,或者是大括号的初始化列表 同时,b ...
什么是道,什么是术?道是事物发展的本质规律,术是事物发展的具体途径。规律只有一个,途径很多,条条大路通罗马,罗马是道,大路是术。道为本,术为途,如果事先知道罗马在哪里,那么遍地是路,路路相通。架构也是如此,如果能领悟架构的本质,就不会拘泥于现有的实践和理论框框,而以最直接的方式解决问题,无招胜有招。本文的内容包括架构的 ...
GYP(Generate Your Projects)是一个google开源的构建系统,最开始用于Chromium项目,现在一些其他的开源项目也开始使用GYP,如V8,Node.js,WebRTC等。 跨平台的工程配置工具 通过gyp可以生成平台相关的编译配置,比如ninja,xcode,msvs等 类似json格式的文件配置,维护简单,但功能强大 环境准备 ...
模板显式实例化(extern template)可以用来确保模板只被编译器实例化一次,有两个好处: 这样使用模板生成的编译单元不会重复实例化,会加快编译速度,并减小编译单元的尺寸 如果模板类中包含静态成员对象,当这种模板类被多个动态库(如dll,so)使用,这样生成的动态库会分别包含一份静态成员数据,容易导致程序异常。(在l ...
从C++11开始,类声明支持非静态成员的初始化,而在C++11之前,仅支持常整型静态成员初始化,新特征的支持,使得初始化变的灵活,很多时候可以减少代码量。 关于C++98的成员初始化 int var = 7; class X { static const int m1 = 7; // ok const int m2 = 7; // error: not static static int m3 = 7; // error: not const static const int m4 = var; // error: initializer not constant expression static const string m5 = "odd"; // error: not integral type // ... }; 关于C++11的成员初 ...
decltype(expression)是一个标识符或者表达式的数据类型的推断,它可以用在变量声明中作为变量的数据类型。decltype类型说明符常常和auto关键字一起用于模板库的开发。 语法 decltype( expression ) 类型推断规则 如果 expression 参数是标识符或类成员访问,则 decltype(expression) 类型是 expression 命名的实体的类型。 如果 expression 参数是对一个函数或一个重载运算符函数的调用 ...
从C++11开始,继承体系新增关键字override和final,让继承和成员函数覆盖更加规范和安全,在编译期做了保证。 override关键字 在成员函数的声明或定义中,override表示该成员方法是virtual的,并且是用来覆盖基类的虚函数。 如果基类没有匹配的虚函数,将会编译报错,这在保证程序正确性方面非常有用,因 ...
本文整理了当前最新的chromium 44开源代码的编译及调试方法,基本上是结合了官网的一些信息,以及实践中的注意点记录。 Widows Windows环境下:参考 http://www.chromium.org/developers/how-tos/build-instructions-windows 环境配置 操作系统要求 win7 64位及以上的系统版本,32位不支持 更改系统区域语言为英语 [控制面板] - [区域和语言] - [管理] - [(非Unicode程序的语言)更改系统区域设置] ...
本文介绍vps基于nginx的web服务器的配置。 安装java环境 yum install java wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo yum -y install apache-maven 配置nginx反向代理springboot启动的应用 DNS解析配置A标记 vps上通过 java -jar webapp.jar 启动基于springboot的应用,本地默认会启动监听8080的http服务 配置server,在 /etc/nginx/conf.d/ 下添加 webapp.conf文件 server ...
VPS(Virtual Private Server)技术,是指将一部服务器分割成多个虚拟专享服务器的优质服务,类似的(指操作类似)还有更强大的基于分布式的ECS的云服务器(Elastic Compute Service)。 安装CentOS 进入控制面板,安装centos系统,默认vps用的是root账户及密码 ssh登陆 有些vps为安全起见,会分配一个 ...
VPS正如虚拟机类似,可以用来搭建代理,服务器等,本文介绍支持markdown的jekyll静态博客站点的搭建。 搭建静态博客 使用nginx来作为静态文件服务器,使用jekyll来处理markdown并生成静态博客目录。 安装ruby yum install ruby yum install ruby-devel jekyll && markdown 博客的代码一般托管在github等,方便跟踪每次的更新 本地更新好,可以通 ...