Vim 编辑器快捷键:
vim写入模式:
a 在光标所在字符后插入
A 在光标所在的行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行
:set nu 设置行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
$ 移至行尾
0(零) 移至行首
x 删除光标所在处字符
nx 删除光标所在处后n个字符
dd 删除光标所在行,ndd删除n行
dG 删除光标所在行到文件末尾内容
D 删除光标所在处到行尾内容
:nl,n2d 删除指定范围的行 :100,110d
yy 复制当前行
nyy 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p、P 粘贴在当前光标所在行下或行上
r 取代光标所在处字符
R 从光标所在处开始替换字符,按Ese结束
u 取消上一部操作
:%s/old/new/g 替换整个文件的old为new
%s 表示全文替换
g 是不询问
c 是询问
文件操作:
:w 保存
:wq 保存并推出
:q! 不保存推出
:wq! 保存并推出(文件所有者或root可以使用)
ZZ 保存并退出
服务端code:
1. 引入http组建
const http = require('http');
2. 创建服务
var service = http.createServer( (req, res) => {
//打印客户端请求
console.log(req);
//头信息
res.writeHead(200, {'Content-Type': 'text/plain'});
//请求结束
res.end('okay');
});
3. 监听端口
service.listen(1337, '192.168.1.118', () => {
console.log('service OK');
});
request请求信息(http://192.168.1.118:1337):
//s's传入的消息
IncomingMessage {
//头信息
headers:
{
//请求的主机/端口
host: '192.168.1.118:1337',
//连接方式
connection: 'keep-alive',
pragma: 'no-cache',
//缓存控制
'cache-control': 'no-cache',
//用户请求:浏览器信息
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36',
accept: '*/*',
//请求域名
referer: 'http://192.168.1.118:1337/',
//编码
'accept-encoding': 'gzip, deflate, sdch',
//语言
'accept-language': 'zh-CN,zh;q=0.8'
},
rawHeaders:
[
'Host',
'192.168.1.118:1337',
'Connection',
'keep-alive',
'Pragma',
'no-cache',
'Cache-Control',
'no-cache',
'User-Agent',
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36',
'Accept',
'*/*',
'Referer',
'http://192.168.1.118:1337/',
'Accept-Encoding',
'gzip, deflate, sdch',
'Accept-Language',
'zh-CN,zh;q=0.8'
],
trailers: {},
rawTrailers: [],
upgrade: false,
url: '/favicon.ico',
method: 'GET'
}
网友评论