Visual Studio 使用技巧

Visual Studio 快捷键

  1. 自动提示:Ctrl+J
  2. 查看帮助:F1键
  3. 程序代码:F7
  4. 运行:F5或者Ctrl+F5
  5. 格式化格式: Ctrl+E,d
  6. 快速导入类所需的命名空间: Alt+Shift+F10
  7. 快速跳转到类的定义: F12
  8. 注释掉选中的内容: Ctrl+e, c 或者使用 CTRL+K,CTRL+C
  9. 取消注释的内容: CTRL+K,CTRL+U
  10. 双击 tab 键快速补全代码列表:
输入字符 实现功能 备注
foreach 快速补全 foreach 语句 输入到 fore 即可
for 快速补全 for 语句
cw 快速补全 Console.WriteLine(); 语句
prop 生成自动属性
  1. 快速封装属性: Ctrl+R+E
  2. 逐步调试: F11
  3. 快速实现子类中继承于抽象父类中的所有抽象成员 Alt+Shift+F10
  4. 选中文本快速添加#region:Ctrl+K,S

Visual Studio(免费社区版)官方离线安装ISO光盘镜像下载
下载链接:http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso

Visual Studio 2015 各版本比较
微软官方链接: https://www.visualstudio.com/products/compare-visual-studio-2015-products-vs

更新记录:
1. 2016-3-27:更新1到5;
2. 2016-4-5:增加条目6到9;
3. 2016-4-6:增加条目10,增加条目9内容
4. 2016-5-10:增加#region快捷键
5. 2016-5-25:增加取消注释

印象笔记(Evernote)技能收集

印象笔记实用快捷键 :

使用优先级 快捷键 功能描述
1 Ctrl+Q 快速查找标签、笔记、笔记本或搜索
2 F6 快速把焦点置于搜索框
3 Ctrl+Shift+v 纯文本粘贴
4 F11 隐藏文章列表
5 F10 隐藏目录列表
6 F9 立即同步
7 Win+A 任何环境下发送至笔记
8 Ctrl+K 快速添加超链接

更新历史:

2016-02-14:初版。
2016-06-04:增加新版支持的快捷键Ctrl+Q,更新样式。
2016-06-07:增加F9同步按钮。
2017-2-27:增加Ctrl+K添加超链接按钮。

Git 使用手册

生成并绑定SSH秘钥

进入用户主文件夹

$ cd ~

生成邮箱对应的SSH密钥

$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "qqqqqq@qq.com"

这时~/.ssh目录下会多出id_rsa.gitee 和id_rsa.gitee.pub两个文件,id_rsa.gitee.pub里保存的就是我们要使用的key
-f ~/.ssh/id_rsa.gitee
指定生成的文件路径和名称,用于区分此密钥使用于哪个代码托管平台,此处以oschina为例
对于本地配置多个ssh key,只需要安装上述方式配置生成key,并修改config文件即可。

复制密钥至官网绑定SSH密钥

$ cat ~/.ssh/id_rsa.gitee.pub

以 gitee为例:

复制密钥至官网绑定SSH密钥

新增并配置config文件

如果config文件不存在,先添加,存在则直接修改

$ touch ~/.ssh/config

在config文件里添加如下内容 (User表示你的用户名)

Host gitee.net
    IdentityFile ~/.ssh/id_rsa.gitee
    User rqc

Host github.com
    IdentityFile ~/.ssh/id_rsa.github
    User rqc

按此语法格式,可继续添加 github.com、gitee.com 当代码托管平台的。能解决本地多个ssh key的问题

测试效果:

$ ssh -T git@gitee.com

若返回

Welcome to Gitee.com, [yourname]!

则证明添加成功。

如果返回:

Bad owner or permissions on /home/YourName/.ssh/config

则是ssh config文件权限的问题。在.ssh目录下,执行下面的语句:

$ sudo chmod 600 config

再次执行$ ssh -T git@gitee.com查看效果,直到添加成功。

创建全新项目并添加到托管平台

设置 Git 全局用户名和邮箱设置:

添加用户名和邮箱:

 git config --global user.name "YourName"   git config --global user.email "emailAddress@qq.com"

不设置提交用户名会显示Unknown

删除用户名和邮箱:

 git config --global --unset user.name   git config --global --unset user.email

创建 git 仓库:

 mkdir MyDir  #新建文件夹   cd MyDir     #进入文件夹
$ git init     #初始化git仓库

对于单个项目设置用户名和邮箱【推荐】

 git config user.name "YourName"   git config user.email "emailAddress@qq.com"

此方式对于不同的代码托管平台可以使用不同的用户名和邮箱。
也可是直接编辑config文件:项目文件夹/.git/config

添加项目说明文件

 echo "# add some introduction" >> README.md    #创建仓库说明文件并添加内容:README.md   git add README.md               #向仓库中添加README.md文件
 git commit -m "first commit"    #提交内容   git remote add origin git@gitee.com:YourName/yourRepo.git  #添加远程仓库
$ git push -u origin master       #把修改内容推送到master分支

登录托管平台,查看效果。

已有项目添加到托管平台

 cd existing_git_repo   git remote add origin git@gitee.com:YourName/yourRepo.git  #添加远程仓库地址
$ git push -u origin master           #推送内容到master分支

登录托管平台,查看效果。

Git 常用命令

查看历史提交记录

$ git log --pretty=oneline
Git 使用手册

查看工作区的状态

$ git status

查看远程连接

$ git remote -v

修改远程连接

$ git remote set-url origin git@gitee.com/YourName/yourRepo.git

Git pull 强制覆盖本地文件

 git fetch --all     git reset --hard origin/master 
$ git pull

Git 高级入门

Git 配置文件

git config 命令,专门用来配置或读取相应工作环境变量。
Git配置文件有三种:

  1. /etc/gitconfig 文件,系统中对所有用户都适用的配置。搭配git config 时用 --system 选项,读取此文件。
  2. ~/.gitconfig 文件,用户目录下的配置文件只适用于该用户。搭配git config 时用 --global 选项,读取此文件。
  3. 项目文件夹.git/config 文件,仅仅对当前项目有效的配置文件。

越往下一级配置则会覆盖上层的所有相同配置。

设置两个 Git 仓库地址

给 origin 设置两个地址:

 git remote origin set-url --add git@gitee.com/YourName/yourRepo1.git   git remote origin set-url --add git@gitee.com/YourName/yourRepo2.git

.git/config配置文件显示如下:

[remote "origin"]
        url = git@gitee.com/YourName/yourRepo1.git url = git@gitee.com/YourName/yourRepo2.git [branch "master"] remote = origin 

提交

$ git push origin master 会同时提交到两个repo

拉取

$ git pull origin master 会同时从两个repo中取得更新。

设置只用来备份的仓库,不会从此仓库更新

 git remote origin set-url --add git@gitee.com/YourName/yourRepo1.git    #会同时pull和push   git remote set-url origin --push --add git@gitee.com:YourName/yourRepo2.git
 #不会pull,只会push

在项目.git/config 里可以看到

[remote "origin"]
    url = git@gitee.com/YourName/yourRepo1.git pushurl = git@gitee.com/YourName/yourRepo2.git ... [branch "master"] remote = origin 

提交
$ git push origin master //会同时提交看两个repo

拉取
$ git pull origin master //只会从 repo1 里取得更新。

参考文章:

  1. Bad owner or permissions on .ssh/config的解决
  2. 网络搜索

Ubuntu 下安装oh-my-zsh

默认状况下Termial样式

Ubuntu系统默认状况下的终端样式如下:

Ubuntu default terminal's style

有个知名的神奇:Oh-My-Zsh 可以让终端及美观又实用:

Oh-My-Zsh agnoster theme install powerline font

今天就一步步的记录我安装Oh My Zsh 的过程

安装Oh-My-Zsh

安装Oh-My-Zsh之前必须安装zsh,否则会收到如下提示:

Zsh is not installed! Please install zsh first!

安装zsh:

  1. sudo apt-get install zsh安装zsh
  2. zsh --version确认是否安装成功
  3. sudo chsh -s $(which zsh)设置zsh为默认shell
  4. 注销重新登录

设置完成之后,终端变成如下样式:

ubuntu zsh style

  1. echo $SHELL确认zsh是否是默认SHELL,输出/usr/bin/zsh

安装Oh-My-Zsh

  1. 使用curl方式安装:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  1. 默认安装完成Oh-My-Zsh的样式如下:(重启终端后有效)

First install Oh-My-Zsh UI

  1. Oh-My-Zsh的默认配置文件在:~/.zshrc
  2. 编辑~/.zshrc修改主题为:agnoster,效果:

修改:

Oh-My-Zsh agnoster theme configuration

修改后:

Oh-My-Zsh agnoster theme example

修改Oh-My-Zsh agnoster匹配字体

从上图我们可以明显的发现,显示效果中有乱码,这是因为字体没适配。我们需要下载支持Powerline的字体。

  • 下载地址:https://github.com/powerline/fonts
  • 下载完成双击安装

默认Ubuntu 终端使用的是 Ubuntu mono regular字体 13字号,体会成Ubuntu Mono derivative Powerline字体后,效果如下:

Oh-My-Zsh agnoster theme install powerline font

进一步优化

精简 user@hostname:添加export DEFAULT_USER="username"~/.zshrc中,可以隐藏固定的 user@hostname 信息。

hide username and hostname

Docker 命令列表

  1. docker pull [name]获取镜像
  2. docker images 显示Docker镜像列表
  3. docker inspect [镜像ID]获取镜像的详细信息
  4. docker search [关键词]查找关键词镜像列表
  5. docker ps -a 查看Docker后台进程
  6. docker rmi [镜像标签/镜像ID]删除镜像
  7. docker cp [file] [容器ID]:/etc/复制文件到容器指定位置
  8. docker rm [容器ID]删除容器
  9. docker commit -m "description..." -a "author" [容器ID] [New id]基于已有容器创建新的镜像
  10. docker run -it ubuntu /bin/bash使用镜像创建一个容器,并在其中运行bash应用(-t 分配一个伪终端,-i 让容器标准输入保持打开)
  11. docker create -it [镜像]新建一个容器
  12. docker start [容器ID]运行处于终止状态的容器
  13. docker run -d ubuntu [命令]后台运行容器
  14. docker logs [容器ID]查看容器输出信息
  15. docker stop [-t|--time[=10]] [容器ID]终止容器,默认等待10s
  16. docker kill [容器ID]直接强制终止容器
  17. docker ps -a -q查看处于终止状态的容器
  18. docker restart [容器ID]重启一个容器
  19. docker exec -ti [容器ID] /bin/bash进入到创建容器中运行交互命令
  20. docker save -o name.tar ubuntu:14.04存出镜像到本地为name.tar
  21. docker load --input name.tar导入镜像存储文件到本地镜像库
  22. docker export [容器ID] > name.tar导出停止或运行中的容器到文件中去
  23. cat name.tar | sudo docker import - test/ubuntu:v1.0导入容器导出的文件成为镜像

Docker无法删除none标签镜像解决方法

在使用Docker安装ubuntu的过程中,因为Docker Hub的速度太慢,于是使用Ctrl+Z关闭下载了进程。

可是此过程会产生了一个none标签的镜像,此镜像使用 -f 也无法强制删除。

rqc@ubuntu:~$ docker rmi c061463d062e
Error response from daemon: conflict: unable to delete c061463d062e (cannot be forced) - image is held by an ongoing pull or build
Error: failed to remove images: [c061463d062e]

Error response from daemon: conflict: unable to delete c061463d062e (cannot be forced) - image is held by an ongoing pull or buildError: failed to remove images

最终,在Docker的官方讨论区里找到了解决方法:链接

分别执行以下命令之后再删除镜像:

systemctl restart docker
docker rmi 3f8d2e13b904

Gentoo 命令手册

更新Portage树

Portage树存放位置:/usr/portage

从镜像站更新Portage树

root # emerge --sync

从Gentoo的每日Portage树快照更新

root # emerge --webrsync

查询、下载、安装、更新软件

查询软件

标题全部或部分匹配关键词

user $ emerge --search something

查询描述匹配关键字

user $ emerge --searchdesc something

也可以使用

user $ emerge -S something

安装软件

root # emerge --ask dev-something/something

查询某个包没有安装的依赖包

root # emerge --pretend something

软件的二进制包下载位置:/usr/portage/distfiles/

只下载二进制文件,不安装

root # emerge --fetchonly something

卸载软件

root # emerge --unmerge something

如果配置文件被修改过将会保留下来,下次安装直接使用

安装此包时所安装的所有依赖包都会保留下来,如需删除使用如需命令

root # emerge --umerge --depclean something

更新系统

root # emerge --update --ask @world

此命令会展示并询问升级清单,但是不会升级它们的依赖包

已安装软件的清单:/var/lib/portage/world

升级软件及其依赖包(不包含编译及安装时所需的依赖包)使用命令:

root # emerge --update --deep @world

如果同样需要升级编译及安装时的依赖包,使用命令:

root # emerge --update --deep --with-bdeps=y @world

一些系统的安全升级可以一同使用

root # emerge --update --deep --with-bdeps=y --newuse @world

元数据包

删除孤立包的流程:

root # emerge --update --deep --newuse @world

root # emerge --depclean

root # revdep-rebuild

其中revdep-rebuild命令是由app-portage/gentookit包提供,需要提前安装:

root # emerge --ask app-portage/gentookit

VS Code修改 Markdown 预览样式

VS Code在编辑.md文档的时候,可以通过快捷键 Ctrl+Shift+v 来预览最终的显示效果。

VS Code修改 Markdown 预览样式

从图片中的效果我们可以看到,用户设置中自定义的字体样式和字体大小在预览中完全不起作用。

其实在官方的配置文件中给出了用户自定义Markdown预览效果的CSS设置路径。

//-------- Markdown preview configuration --------
// A list of URLs or local paths to CSS style sheets to use from the markdown preview.

"markdown.styles": [],
我们可以通过这样:

"markdown.styles": [ "file:///D:/user.css" ] 
或者这样:

 "markdown.styles": [ "https://jasonm23.github.io/markdown-css-themes/foghorn.css" ]
来引用第三方的CSS文件。

一些网站也都有提供各种样式的Markdown CSS,例如:https://jasonm23.github.io/markdown-css-themes

我尝试了一下,效果是这样的:

VS Code修改 Markdown 预览样式

可以看到,有些CSS虽然美观但是不能适用主题的Theme。

其实对于默认的Preview CSS,唯一看不惯的就是字体。那我们只需要简单的修改下字体就OK了。

于是,我们可以在路径:
d:\Program Files (x86)\Microsoft VS Code\resources\app\out\vs\languages\markdown\common\markdown.css

修改markdown.css 文件,刷新效果就出来了。

我只是尝试修改了:字体 font-family和行间距 line-height,效果如下:

VS Code修改 Markdown 预览样式


更新日期:
2016-7-20 :快捷键错误,修复。

我们终将离开农村

前一段时间请假回家,帮独自在家的老爸收玉米和种小麦。说来惭愧,自从去外地上大学以来,家里的农活从没碰过。每年都是妈妈、姐姐或者亲戚帮忙收种。所以,多年以来我对农村生活的印象一直没变过。

一直以来都是以农村人自居的我,谈起来自农村不是堕落也非炫耀,只是因为心里始终相信我将永远无法割舍这里。属于这里就代表着早晚都可以回来也都能够回来,如果再稍稍幻想着迟暮之年来个归园田居啥的,那也未必不是一件幸事。

只是,现实和理想的差距永远无法言语。就在这次回去后,我看到了完全改变了的农村,一个不再属于我们的地方。而且我发现,我们终将要离开这里,无论从心理上还是身体上。

继续阅读“我们终将离开农村”