Vim实用技巧-2
Vim实用技巧-2背景继昨天vim实用技巧-1以后,今天看的还是vim模式下光标的移动、选择、内容的快捷修改,毕竟在vim中,快速定位和编辑修改是其操作的核心。
内容光标移动vim中,将行分为实际行和屏幕行两种,hjkl操作的是实际行,这对于实际使用中操作屏幕换行存在问题,为此vim也提供了操作屏幕行的方式
123456# 操作屏幕行的以g开头gk --> 屏幕行的上一行gj --> 屏幕行的下一行g0 --> 屏幕行的行首g$ --> 屏幕行的行尾g^ --> 屏幕行的第一个非空字符
在基础篇中,我们常用的是w,b,e这样操作单词的跳跃方式,抑或是W、B、E这样操作字符串的跳跃方式,你会发现其本身同样,对于e而言也有会跳的方案
12ge --> 回跳到上一个单词的末尾gE --> 回跳到上一个字符串的末尾
同样,在同一行中,vim还提供了另一种跳转的方式,它更加的灵活:f/F、t/T
1234567# 直接跳转到单个字符的位置,直达f{char} --> 向后跳转到查询的字符处F{char& ...
Vim实用技巧-1
Vim实用技巧-1背景时光荏苒,转眼又回到了Vim的世界里,我决心将此前《Vim实用技巧》一书看完,以慰寡淡之生活,读本书之开始,是基于此前所定计划「深度Vim工作者」,尽管Python的学习步履维艰,但还是知道没得办法,迟早又要回头,既然实在不想看,那么就值此反感之间隙,摸一摸别的。
内容vim中显示行号12345678# 在文件中执行命令:set number# 或者执行命令:set nu# 或者修改home下的配置文件.vimrc,追加内容set nu
撤销修改1Ctrl + r
修改大小写vim中当一个操作符命令被连续调用两次时,它会作用于当前行,但是有一个除外,即gU。
1234567gU: 将指定区域全部转换为大写gu:将指定区域全部转换为小写g~:将指定区域的大小写进行转换如:gUaw:表示将当前光标的单词全部转化为大写gUU:表示将当前光标所在行单词全部转换为大写
你也会发现,上述的操作并没有作用到最小单元:字母。
12# vim使用~可以将当前光标所在的字符转为其对应的大/小写~
屏幕绘制除了寻常的H、M、L切换光标在窗口的位置方式外,还可以重回当前窗口的内容 ...
Nginx配置指定用户访问
Nginx配置指定用户访问背景
解决问题
网站上有一些页面还没有修改完毕,此时不便于提供给用户浏览,又或者是有一个页面的数据只是用于个人浏览,便需要对页面进行加密,此前尝试通过hexo的插件加密指定的网页,但本质上密码就写在了html源码里,形同虚设。这一切都是限于网站是静态的,无法从程序上进行限制,所以考虑直接从nginx服务器端直接控制,便引入了auth_basic的配置项
使用模块
htpasswd、nginx
参考文档
https://www.cnblogs.com/xzlive/p/9492879.html
http://www.tashan10.com/nginxshe-zhi-wang-zhan-fang-wen-mi-ma/
使用
安装htpasswd的包
1sudo apt-get install apache2-utils
执行命令生成密码文件,htpasswd的具体参数详见拓展部分
123# htpasswd [参数] 文件存储的绝对路径 用户名 密码# 此处因为指定了-b选项,所以可以直接在后面追加用户名和密码的选项htpasswd -bdc pwd ...
GoAccess分析Nginx日志
GoAccess分析Nginx日志背景
解决问题
最近搭建静态网站,并挂到了Google上,虽然可以通过Google Search Console后台查看曝光度等信息,但是无法实时的查看到网站真实的访问情况,这一点很可惜。恰逢遇到GoAccess工具,可以提供实时解析nginx、apache等之类日志的功能,同时将其输出为多种格式,如:json、csv、html。这对于静态网站而言是一大利器,解决了静态网站无法实时分析访问日志的弊端。
使用模块
GoAccess
前提:
本文以生成html文件为例子,json和csv也是同理,主要就是需要修改goaccess的配置文件中的output/out参数
参考文档
官方网站:https://www.goaccess.cc
Github地址:https://github.com/allinurl/goaccess
使用
安装GoAccess,里面会有一些环境需要安装,这个可以根据报错提示的内容直接百度安装
直接安装
1sudo apt install goaccess
手动安装(本文采用)
1234567891011 ...
Google网站迁移
Google网站迁移背景
解决问题
网站域名到期以后,打算启用新的域名,同时又不希望以前的老域名收录情况影响当下的域名收录,所以考虑通过Google Search Console中提供的网站迁移的方式,将老域名转到新的域名下
使用工具
Google Search Console
准备
新域名:aaabbcc.cn
老域名:kk.cn
服务器:nginx
使用
登陆自己的网站所在服务器,添加新域名的解析,同时修改老域名的301跳转到新域名下,修改完毕后检查一下301的跳转是否正常
12345678910111213141516# 此处列出301重定向的nginx配置server { listen 443 ssl; .... server_name www.kk.xyz kk.xyz; rewrite ^(.*)$ https://aabbcc.cn$1? permanent; } server { listen 80; server_n ...
Django自带用户验证系统
Django自带用户验证系统django验证系统背景
解决问题:
当用户登录的时候,则需要进行验证,而用户登录了以后还希望能够记录它的登录状态,为此django提供了验证和记住登录状态的函数
参考文档:https://docs.djangoproject.com/zh-hans/3.1/topics/auth/default/
使用
在项目的settings.py文件中添加配置信息
12# 使用django自带的用户验证时,需要配置该选项,否则验证的结果一直为NoneAUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.AllowAllUsersModelBackend']
在视图中使用
12345678910111213# 使用django自带的验证系统# 用户登录以后,一般需要记录用户的登录状态,# 此时不建议将其存储在django自身的session表中,而是将其记录在redis数据库中from django.contrib.auth import authenticate, login# 登 ...
Django提供激活链接
激活链接加密背景
解决问题:当我们决定使用邮箱验证的时候,如果此时直接使用明显的数据,则不够安全,因此引入链接加密的概念
使用模块:itsdangerous
参考文档:http://itsdangerous.readthedocs.io/
使用12345678910111213141516171819202122# 加密的时候需要用到该包from itsdangerous import TimedJSONWebSignatureSerializer as Serializer# 引入异常from itsdangerous import SignatureExpired, BadSignature# 加密的时候需要用到密钥,此处我们使用settings.py文件中# 这个settings对应的就是项目目录下的settings.py文件from django.conf import settings# 通过创建TimedJSONWebSignatureSerializer对象,# 第一个参数为加密的密钥,自己随便设,第二个参数是该加密的过期时间为1小时serializer = Seria ...
Hexo配置生成百度Sitemap
Hexo配置生成百度Sitemap背景当我们生成网站信息的时候,有时需要提交搜索引擎进行收录对应的域名地址,一般这样的xml文件我们放置在网站的根目录下,提交给搜索引擎去爬取内容,对应的也可以设置robots.txt文件用于禁止搜索引擎爬取我们的内容页。
搜索引擎爬取网站内容后带来的好处就是可以直接通过它的搜索引擎搜索到我们网站的内容,但是排名啥的可能就不尽如人意,这个就需要做SEO了。
但是网站中有些链接,我们并不希望百度对它收录,所以这个时候可以借助网站robots.txt文件禁止搜索引擎收录
搭建自动生成sitemap
安装插件
1234# 在项目的根目录下执行# hexo-generator-sitemap是生成google的,hexo-generator-baidu-sitemap是生成baidu的,根据需要安装npm install hexo-generator-sitemap --savenpm install hexo-generator-baidu-sitemap --save
修改配置文件
123456# 打开项目的根目录下的_config.yml文件进行配置# ...