假设body有命名空间如下
<body xmlns="http://www.w3.org/1999/xhtml">
那么直接用response.xpath取body
response.selector.register_namespace('w', 'http://www.w3.org/1999/xhtml')
body = response.xpath('//w:body').extract()
上面的这个response.selector实际上是scrapy.selector.XmlXPathSelector,等同于
from scrapy.selector import XmlXPathSelector
x = XmlXPathSelector(response)
x.register_namespace('g', 'http://www.w3.org/1999/xhtml')
x.select('//g:body')
...假设待操作的文本文件如下,需要将如下多行文本的行首键入一个tab。
set nu
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set mouse=i
syntax on
先将光标移动到第一行。
在normal模式下,按q加一个字母开始录制。例如按下qr,将该宏注册为r。
按下I在行首插入,在编辑模式按下Tab键。按Esc键返回到normal模式。
按下j将光标移动到下一行。
按下q完成录制。
即宏的录制是以q加一个注册字母开始,录制操作过程,并在normal模式以q完成录制。
使用上面录制的宏r
normal模式下将光标移动到第二行,按下@r,使用了一次宏r。
多次操作按下数字加@r,例如将光标移动到第三行,对余下的5行操作宏r,按下5@r
@@是对上一次宏使用的重复使用。
...修改 ~/.vimrc 文件,在其中添加相应语句,使VIM支持显示行号,Tab键及退Tab键大小,自动缩进,支持鼠标,代码高亮等。
基本设置
set nu
set tabstop=4
set shiftwidth=4
set softtabstop=4
set autoindent
set mouse=i
syntax on
备忘之。
...c$ 或 C 改写光标到行尾
cc 改写整行,相当于 ddO
ciw 或 caw 改写光标所在的单词,caw将单词后的空格也改写
ci' ci" ci) ci} ci] 等表示改写 ' " ) } ]等引号或括号之间的内容
c 也可以与f组合,例如 c2f ,将改写光标到两个空格字符串,f 表示该行向右查找字符
类似的,D 表示删掉光标至行尾,d 也可以与引号或括号组合,
A 表示在行尾添加,I 表示在行首插入。
...例如vim以标签页的形式打开多个文件编辑
vim -p first.txt second.txt
gvim -p *.txt
:tabe path/to/second.txt
在正常模式打
gt 到下一个标签页
gT 到上一个标签页
{i}gt 到第i个标签页
注意,0gt和1gt一样都是到第一个标签页,而且标签页从1开始数起,意味着到第三个标签页为3gt。
命令模式下也可以
:tabn 到下一个标签页
:tabp 到上一个标签页
正常模式和编辑模式下也可以用快捷键
Ctrl-PgDn 到下一个标签页
Ctrl-PgUp 到上一个标签页
也可以对键盘映射
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>
这样你就可以按 Ctrl-Left 或 Ctrl-Right 到上一个或下一个标签页了。
重要但不常用的
_ 跳到此行开头非空格字符处,0跳到行首但
...