7-14

php

1、数字、字符串,获取整数中其中的几位。

2、php中的二进制、与或运算。

3、php的补零操作。

4、vim在调试的时候还是比较快的,本次开发,使用linux的bin/php,直接开发,脱离浏览器和apache,没想到速度更快,vim在这个时候做一些代码上的小修改,修改好了,直接执行命令号,整个流程较为通畅。反倒比文件拖来拖去,浏览器一次次刷新请求,节省很多时间。开发好了,最后和页面文件合在一起调试就可以了。

 

几个比较好的vim参考:

http://www.linuxforum.net/forum/files/202761-vim.html

http://www.360doc.com/content/06/1218/11/8411_297888.shtml

http://mayongzhen.ycool.com/post.1304750.html

 

——————————————————————————————

1、快速获取字符串的第几位:

a、substr('xxxx',$index,$neednumber);

b、$string{%d}

 

2、vim 标记

一、当你用 "G" 命令跳到另一个地方,Vim 会记住你从什么地方跳过去的。这个位置成为一个标记,要回到原来的地方,使用如下命令:``
 `` 命令可以在两个位置上跳来跳去。而 CTRL-O 命令则跳到一个 "较老" 的地方 (提示: O 表示 older)。CTRL-I 则跳到一个 "较新" 的地方
 :jumps 命令能输出一个你可以跳往的位置的列表。最后一个你使用的标记会用 ">" 符号标记出来。
二、Vim 允许你在文本中放置自定义的标记。命令 "ma" 用 a 标记当前的光标位置。你可以在文本中使用 26 个标记 (a 到 z)。这些标记是不可见的,只是一个由 Vim 记住的位置。
    要跳到一个你定义的标记,可以使用命令 `{mark},这里 {mark} 是指定义标记的那个字母。所以,移到标记 a 的命令是: `a
三、你可以用如下命令取得所有的标记的列表::marks
到有一些特殊的标记,包括:
        '       跳转前的光标位置
        "       最后编辑的光标位置
        [       最后修改的开始位置
        ]       最后修改的结束位置

注:mark仅在当前文件跳转有效,jumps可在多个文件之间来回跳转

 

————————————————————————————————————————————

移动光标
上:k nk:向上移动n行 9999k或gg可以移到第一行 G移到最后一行
下:j nj:向下移动n行
左:h nh:向左移动n列
右:l nl:向右移动n列

w:光标以单词向前移动 nw:光标向前移动n个单词 光标到单词的第一个字母上
b:与w相反
e: 光标以单词向前移动 ne:光标向前移动n个单词 光标到单词的最后一个字母上
ge:与e相反

$:移动光标到行尾 n$:移动到第n行的行尾
0(Num):移动光标到行首
^:移动光标到行首第一个非空字符上去

f<a>:移动光标到当前行的字符a上,nf<a>移动光标到当前行的第n个a字符上
F:相反

%:移动到与制匹配的括号上去(),{},[],<>等。

nG:移动到第n行上 G:到最后一行

CTRL+G 得到当前光标在文件中的位置

向前翻页:CTRL+F
向下移动半屏:CTRL+G
向后翻页:CTRL+B

存盘:
:q! :不存盘退出
:e! :放弃修改文件内容,重新载入该文件编辑
:wq :存盘退出

dw:删除一个单词,需将光标移到单词的第一个字母上,按dw,如果光标在单词任意位置,用daw
dnw:删除n个单词
dne:也可,只是删除到单词尾
dnl:向右删除n个字母
dnh:向左删除n个字母
dnj:向下删除n行
dnk:向上删除n行
d$:删除当前光标到改行的行尾的字母
dd:删除一行
cnw[word]:将n个word改变为word
cc:改变整行
C$:改变到行尾

J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了.
u: 撤销前一次的操作
shif+u(U):撤销对该行的所有操作。

:set showmode :设置显示工作模式

o:在当前行的下面另起一行
O(shift+o):在当前行的上面另起一行

nk或nj:光标向上或向下移n行,n为数字
an!【ESC】:在行后面加n个感叹号(!)
nx:执行n次x(删除)操作

ZZ:保存当前文档并退出VIM

:help :查看帮助文档,在这之中,按CTRL+] 进入超连接,按CTRL+O 返回。
:help subject :看某一主题的帮助,ZZ 退出帮助

:set number / set nonumber :显示/不显示行号
:set ruler /set noruler:显示/不显示标尺

/pattern 正方向搜索一个字符模式
?pattern 反方向搜索一个字符模式
然后按n 继续向下找

把光标放到某个单词上面,然后按×号键,表示查找这个单词
查找整个单词://<word/>

:set hlsearch 高亮显示查找到的单词
:set nohlsearch 关闭改功能

m[a-z]:在文中做标记,标记号可为a-z的26个字母,用`a可以移动到标记a处

r:替换当前字符
nr字符:替换当前n个字符

查找替换:
way1:
/【word】 :查找某个word
cw【newword】:替换为新word
n: 继续查找
.: 执行替换

way2:
:s/string1/string2/g:在一行中将string1替换为string2,g表示执行 用c表示需要确认
:num1,num2 s/string1/string2/g:在行num1至num2中间将string1替换为string2
:1,$ s/string1/string2/g:在全文中将string1替换为string2


v:进入visual 模式
【ESC】退出
V:shift+v 进入行的visual 模式
CTRL+V:进如块操作模式用o和O改变选择的边的大小。

粘贴:p,这是粘贴用x或d删除的文本
复制:
ynw:复制n个单词
yy:复制一行
ynl:复制n个字符
y$:复制当前光标至行尾处
nyy:拷贝n行
完了用p粘贴

:split:分割一个窗口
:split file.c :为另一个文件file.c分隔窗口
:nsplit file.c: 为另一个文件file.c分隔窗口,并指定其行数
CTRL+W在窗口中切换
:close:关闭当前窗口

在所有行插入相同的内容如include<,操作方法如下:
将光标移到开始插入的位置,按CTRL+V进入VISUAL模式,选择好模块后
按I(shift+i),后插入要插入的文本,按[ESC]完成。

:read file.c 将文件file.c的内容插入到当前光标所在的下面
:0read file.c 将文件file.c的内容插入到当前文件的开始处(第0行)
:nread file.c 将文件file.c的内容插入到当前文件的第n行后面
:read !cmd :将外部命令cmd的输出插如到当前光标所在的下面

:n1,n2 write temp.c 将本文件中的n1,到n2行写入temp.c这个文件中去

CTRL+L刷新屏幕
shift + < 左移一行
shift + > 右移一行

u: undo
CTRL+R: re-do
J: 合并一行
CTRL+p 自动完成功能
CTRL+g 查看当前文件全路径

q[a-z] 开始记录但前开始的操作为宏,名称可为【a-z】,然后用q终止录制宏。
用reg显示当前定义的所有的宏,用@[a-z]来在当前光标处执行宏[a-z].


(1) 为什么别人的方法在我这里行不通?
(2) 如何找到上次编辑的文件?
(3) 如何复制粘贴?
(4) 如何在多个文件中进行替换?
(5) 如何把fold一次全部打开?
(6) 如何选择、复制或者查找光标所在的单词?
(7) 如何计数搜索的字符串?
(8) 如何去掉高亮搜索?
(9) 如何解决linux下gvim中文菜单乱码的问题?
(10) 如何对所编辑的文件语法高亮显示?
(11) 如何快速插入多行数字0-99?
(12) 如何设置中文编码?
(13) 如何去掉或者插入^M这样的字符?
(14) 如何整体缩进一段代码(插入tab)?
(15) 如何合并两行?
(16) 如何设置缩进距离(tab宽度)?

==============================================================================
(1) 为什么别人的方法在我这里行不通?

估计这是最难回答的一个问题了。:-)
不过首先应该确定你的VIM版本是否足够新,功能是否完整。使用 :version 命令查看你
的VIM版本以及功能。一个常见的情况,如果你用的是RedHat系统,请确定安装了
vim-enhance的rpm包,否则将是不完整的VIM。

(2) 如何找到上次编辑的文件?

Ctrl+O (按两次)

(3) 如何复制粘贴?

复制
方法一:先ma标记当前位置为a,移动到新的位置,再y`a或者y''a复制从标记位置a到
当前位置的内容。`和''的区别:`以字符为单位,''以行为单位。这个方法应该是所有vi
都适用的。(如果不对请指正。)
方法二:按v或V或Ctrl+V进入visual模式,移动光标选择一段内容,按y。三者的区别:
v以字符为单位,V以行为单位,Ctrl+V是块选择。这个方法只在VIM下适用。

粘贴
p或P。区别:前者粘贴到光标后面,后者粘贴到光标前面。

(4) 如何在多个文件中进行替换?

一般可以用sed或者vim来做。比如要对当前目录下的*.c文件进行替换:
方法一:
for i in *.c; do
  sed -i -e ''s/oldvalue/newvalue/g'' $i
done
方法二:
vim *.c
:argdo %s/oldvalue/newvalue/g

(5) 如何把fold一次全部打开?

zR 或者 :set foldlevel=999

(6) 如何选择、复制或者查找光标所在的单词?

在VIM中用iw或者aw表示一个单词,两者稍有区别。
选择光标所在的单词:viw (v进入visual模式,然后iw)
复制光标所在的单词:yiw

查找的话就是两个很常用的明令:# 和 *

(7) 如何计数搜索的字符串?

如果需要统计缓冲中一个模式(pattern)出现的频率,需要把 ''report'' 置为0,然后
用替换命令把模式替换成它自己。Vim 报告的已替换的数目就是模式出现的次数。例:
        :set report=0
        :%s/./&/g               characters
        :%s/i+/&/g            words
        :%s/^                   lines
        :%s/the/&/g             "the" anywhere
        :%s/<the>/&/g         "the" as a word
你可能希望复位 ''hlsearch'' 或者使用 ":nohlsearch"。


(9) 如何解决linux下gvim中文菜单乱码问题?

以vim6.3为例
:source $VIMRUNTIME/delmenu.vim
:source $VIMRUNTIME/menu.vim

也可以将以上内容加入.vimrc

光source一个menu.vim或者啥也不source都是乱码
另外,也有网友报告说没有遇到此类问题

注:这里的source指的是vim自己的source命令,和bash shell的source无关


(11) 如何快速插入多行数字0-99?

在命令行中输入以下代码,或者先把代码保存到一个外部文件,然后source这个文件:
let i = 0
while i < 100
  put = i
  let i = i + 1
  endw
如果位数不足需要在前面补零,可以用Ctrl-V块选择,然后I插入0。

(12) 如何设置中文编码?

在.vimrc中作如下设置,可以实现界面以及显示字体采用gb2312,遇到utf8文件时
自动做转换:
set encoding=prc
set fileencoding=prc
set fileencodings=utf8,prc
需要注意的是,按照上面的设置,如果你打开一个空的(0字节)或者是纯7bits的文件,
这时VIM将认为是utf8编码的文件,如果你往里面输入中文,存盘的时候也将是utf8。
因此你可能需要在存盘之前 :set fileencoding=prc 把编码改回来。
另外,对于纯7bits的文件,由于认成了utf8,每次打开存盘的时候都要做一次转换,
会比较慢,所以如果你很长一段时间不会接触utf8的话,可能暂时把 fileencodings
一行注释掉比较好。
[警告]:转换可能会造成信息丢失!如果你需要编辑的是重要的系统文件,最好把
fileencodings 一行暂时注释掉。

(13) 如何去掉或者插入^M这样的字符?

在VIM的插入模式或者命令行中用<C-V>输入^M这样的特殊字符,例如输入
:s/<C-V><C-M>//g
实际显示是
:s/^M//g
就可以去掉文件中所有的^M。同理,要在文件中输入^M只要按<C-V><C-M>即可。

这个问题往往发生在WINDOWS/DOS系统和UNIX系统之间交换文件时,因为这两类系统
对于文本的“换行”概念解释不同。所以,还有一个解决方法就是对这类文本进行
转换。vim内部就可以做这件事情。首先打开文本,然后
set fileformat=unix
再从新保存该文件覆盖原文件就可以去除:^M了

(14) 如何整体缩进一段代码(插入tab)?

选中一段代码,< 或 > 或 2< 或 3> ……

(15) 如何合并两行?

合并两行的键是 J
另外,如果你设置了
set backspace=2

你就可以用backspace或者delete很方便的删到上一行或者下一行。

7月24日:

需求,出交互后需要和产品单独沟通。越深入越早越好。

昨天碰到哪个ajax请求后台cgi,cgi被cache住了,为什么会导致拉取回来数据读取不到的问题,你先记着,后面你那边深入分析一下

~
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值