vim小知识

来源:互联网 发布:北京地铁网络取票 编辑:程序博客网 时间:2024/05/29 09:05

1. vim 删除一列

先使用ctrl + v,移动方向键,选择矩形区域,然后按 d 进行删除

如果要在每一列前面加一个“{ ”------>修改列为特殊字符(ctrl + v选好后使用r替换成特殊字符),然后使用:%s替换命令

如果要在每一列后面加一个“},” ------> 1. 修改最后一个字符为特殊;2. 使用命令“:%s /,\r/},\r/gc”

如果想在文章中第一列加一个字符,可以使用ctrl+v选中这一列,然后shift+i,进行插入,输入字符既可.


2. 去掉vim文档中的 ^M :

在vim中输入:%s/\r\n/\r/g回车符是Carriage Return, C语言中是'\r'
换行符是Line Feed, C语言中是'\n'
回车换行符实际是两个字符, 就是\r\n

回车符是Carriage Return, C语言中是'\r'

换行符是Line Feed, C语言中是'\n'

回车换行符实际是两个字符, 就是\r\n

行末:$   行首:^  空格:\s 行末空格:\s\+$  行首空格:^\s\+

删除行尾多个空格 : %s/\s\+$//g

删除行首多个空格 : %s/^ \+//g


3.  将原来的.o文件反汇编成汇编代码,objdump可以使用交叉编译器中的:

objdump -d *.o > 123


4. 打diff的patch: patch -p1 < zero_bit.patch 

5.使用编译器狂报如下

/bin/sh: line 2: /home/lz/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc: cannot execute binary file
/bin/sh: line 2: /home/lz/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc: cannot execute binary file

表示编译器和我们的版本不匹配

weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ file /home/weiwei/my_task/x9/asic/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc
/home/weiwei/my_task/x9/asic/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0x8017f14da2903b7ff324011e39c63adc9355ed07, stripped(此文件要求的是x86 64位的,而我的是 32位的)
weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ uname -a
Linux weiwei-OptiPlex-360 2.6.35-30-generic #61-Ubuntu SMP Tue Oct 11 15:29:15 UTC 2011 i686 GNU/Linux
上面看不出来,可以使用file 看ls,或者自己写个小代码,打印指针的sizeof

weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ uname  -mi
i686 unknown
weiwei@weiwei-OptiPlex-360:~/my_task/x9/asic/bootable/uboot$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xc506f0155fa0d761ca914f84cc970a7ccb2ed9c9, stripped


6. 如何让修改可以让自己的编译文件在git status中不出现:

修改/home/user/wellie/.bashrc 文件,添加export KBUILD_OUTPUT=./out生成目录,再重新bash一下,然后使用env | grep KB命令查看有没有生效,,建立out目录,重新编译的生成的文件就在out目录下。


wellie@icserver:~/x9/buildroot/linux$ vi /home/user/wellie/.bashrc

 添加“export KBUILD_OUTPUT=./out  ”

wellie@icserver:~/x9/buildroot/linux$ bash
wellie@icserver:~/x9/buildroot/linux$ env | grep KB
KBUILD_OUTPUT=./out
wellie@icserver:~/x9/buildroot/linux$ ls
android  block    CREDITS  Documentation  firmware  include  ipc     Kconfig  lib             MAINTAINERS  mm   README          samples  security  tools  virt
arch     COPYING  crypto   drivers        fs        init     Kbuild  kernel   linux_nand.tar  Makefile     net  REPORTING-BUGS  scripts  sound     usr
wellie@icserver:~/x9/buildroot/linux$ make imapx910_evb_defconfig
/bin/sh: 1: cd: can't cd to ./out
Makefile:121: *** output directory "./out" does not exist.  Stop.
wellie@icserver:~/x9/buildroot/linux$ mkdir out


7. 穿越性复制:

原编译器:双引号 + 加号 + yy

目标编译器: 双引号 + 加号 + p


   

8. 为什么利用du和df查看磁盘容量的结果不一致:

# du -sh /home
4.7G    /home
# df -h /home
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5              15G  4.9G  8.9G  36% /home
从上克制,/home 分区的容量,使用df查看是4.9GB,而使用du查看是4.7GB。
du -s 命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数。
df 命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。
du 命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。

df 显示磁盘用量,加-h 选项可以以KB、MB、GB等单位输出,加-H 也以KB、MB、GB输出,但是是以1000B为1KB,而非1024B

9. 从20行到50行把ww做替换mm

cmd:  :20,50s/ww/mm/gc

0 0
原创粉丝点击