VI编辑器
vi(vim)是上Linux非常常用的代码编辑器,很多Linux发行版都默认安装了vi(vim)。vi(vim)命令繁多但是如果使用灵活之后将会大大提高效率。vi是“visual interface”的缩写,vim是vi IMproved(增强版的vi)。在一般的系统管理维护中vi就够用,如果想使用代码加亮的话可以使用vim
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
命令模式(command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式、底行模式下。
插入模式(Insert mode) 只有在插入模式下,才可以做文字输入,按ESC键可回到命令模式。
底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令模式。
打开/保存/关闭文件
vi filename /& ...
编程之美
好久没有更博客,天天忙也不知道都忙了什么; 之前说要连续写30天博客,连续推送30天代码的目标在某一天给断了. 结果也不了了之 昨天晚上临睡前看了一会 O' Reilly Media, Inc 出的 Python学习手册, 在书中有一段讲Python和其他语言进行对比的段落,觉得说得很棒; 真是说到我心坎里了,因为最近正好做了一个项目,是二次开发; 嗯 ,说得好听的话叫做项目重构,说的不好听了叫项目重写; 当时拿到项目代码之后整个人是崩溃的,文件结构大概是这样子
12345678AAAClass.hAAAClass.mBBBClass.hBBBClass.mCCCClass.hCCCClass.m........
嗯,还没有文档…..花了两天读了一下代码, 没有重构,没有继承,各种oop思想没有;
生生把Objective-C给写成了C语言;
我想所有的程序员应该都知道, 代码是写给人看的, 不是写给机器和电脑看的..
我觉得代码在设计和编写的时候更应该注重可读性,提高代码的可重用性,可维护性, 遵循这个原则,你的代码才不是写一次就丢掉的程序;
当然,一个人做项目是挺 ...
UITableView性能优化
UItableview 是 iOS 开发中最常用的 ui 控件之一,也是最常出现的控件之一; 常常负责一些列表数据的渲染,因此对 UITablevie 进行性能优化是很有必要的;
1 cell 重用1.1 数据源方法优化1(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
每次刷新都去创建新的 cell, 性能; 我们会传建一个静态的变量来作为标识符去创建 cell, 每个 cell 都会注册一个标识符,放入缓存中,如果需要调用,就从缓存池中找到对应的 id, 只有一处屏幕的 cell 才会被放入缓存中
12static NSString *resuseID = @"CellID";UITableviewCell *cell= [tableview dequeueReusableCellWithIdentifier:resuseID];
1.2 缓存池的实现当 cell 要初始化的时候, tableview 会在 ...
CentOS 下安装 Redis
前言
安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。
下载安装包1wget http://download.redis.io/releases/redis-4.0.2.tar.gz
解压并安装1234tar xzf redis-4.0.2.tar.gzcd redis-4.0.2makemake install
Redis没有其他外部依赖,安装过程很简单。编译后在Redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件。 如下:
那你也可以通过命令 redis -server 命令来执行启动 redis; 启动后界面如下:
配置
配置初始 ...
js数组去重
前言最近参与公司 ERP 项目, 负责了一下前端页面开发; 之前接触 js 比较浅, 在做项目中遇到了一些问题, 比如数组去重, 对象数组去重等问题;
使用 Array.form() set集合1234let arr = [1,1,2,3,4];let result= Array.from(new Set(arr));console.log(result);}
遍历,利用 indexOf 判断1234567let arr = [1,1,2,3,4];var temp= [];for (i in arr){ if(temp..indexOf(arr[i]) == -1){ temp.push(arr[i]); }}
遍历 利用对象的 key, 判断数据值1234567891011121314151617181920var arr = [ {id: '121', count: 20}, {id: '122', count: 20 ...