git小技巧:git blame && git show 查看某一行代码的修改历史
如果你要查看文件的每个部分是谁修改的, 那么 git blame 就是不二选择. 只要运行'git blame [filename]', 你就会得到整个文件的每一行的详细修改信息:包括SHA串,日期和作者:
先查看某行代码由谁写的,在哪个commit中提交的:
其显示格式为:
commit ID | 代码提交作者 | 提交时间 | 代码位于文件中的行数 | 实际代码
类似于下面这样
你也可以用"-L"参数在命令(blame)中指定开始和结束行:
$>git blame -L 160,+10 sha1_file.c
ace1534d (Junio C Hamano 2005-05-07 00:38:04 -0700 160)}
ace1534d (Junio C Hamano 2005-05-07 00:38:04 -0700 161)
0fcfd160 (Linus Torvalds 2005-04-18 13:04:43 -0700 162)/*
VIM键盘图
VIM命令图解.jpg
http://blog.csdn.net/zhlh_xt/article/details/52458672
https://pan.baidu.com/s/1eS363sA#list/path=%2F
xiao@xiaohua MINGW64 /h/Hoemwork/NX531J_M_kernel (master)
$ find drivers/ -type f -name "block.c"
drivers/mmc/card/block.c
drivers/mtd/ubi/block.c
$ find drivers/ -type f -name "block.c" |xargs grep -iw --color "read_only"
drivers/mmc/card/block.c: unsigned int read_only;
drivers/mmc/card/block.c: md->read_only);
drivers/mmc/card/block.c: set_disk_ro(dev_to_disk(dev), set || md->read_only);
drivers/mmc/card/block.c: if ((mode & FMODE_WRITE) && md->read_only) {
drivers/mmc/card/block.c: md->read_only = mmc_blk_readonly(card);
drivers/mmc/card/block.c: set_disk_ro(md->disk, md->read_only || default_ro);
drivers/mmc/card/block.c: cap_str, md->read_only ? "(ro)" : "");
find drivers/ -type f -name "block.c" |xargs grep -inw --color "read_only"
drivers/mmc/card/block.c:129: unsigned int read_only;
drivers/mmc/card/block.c:336: md->read_only);
drivers/mmc/card/block.c:357: set_disk_ro(dev_to_disk(dev), set || md->read_only);
drivers/mmc/card/block.c:488: if ((mode & FMODE_WRITE) && md->read_only) {
drivers/mmc/card/block.c:3700: md->read_only = mmc_blk_readonly(card);
drivers/mmc/card/block.c:3725: set_disk_ro(md->disk, md->read_only || default_ro);
drivers/mmc/card/block.c:4112: cap_str, md->read_only ? "(ro)" : "");
vi 编译器
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。
1、vi的基本概念
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式
3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
4.复制、粘贴、删除
复制:yy,复制光标所在一行;nyy,复制光标所在向下n行;
粘贴:p,粘贴在光标下一行;P,粘贴在光标上一行;
删除:
x或【Del】,向后删除一个字符;
X或【backspace】,向前删除一个字符;
dd,删除光标所在一行;
ndd,删除光标所在向下n行。
5.复原、重做和重复
复原:u;
重做:【Ctrl】+r;
重复上一操作:”.”。
A) 列出行号
「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
B) 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
查找与替换
向下查找名称为word的字符串:/word
向上查找名称为word的字符串:?word
重复前一个查找:n
反向重复前一个查找:N
行号的设置
显示行号(number)::set nu
取消行号(no number)::set nonu
保存和离开
保存::w
另存为::w [filename]
离开::q
保存并离开::wq或 :x