Open vpn 使用
sudo openvpn /etc/openvpn/pfsense-udp-1190.ovpn
MTK truszone
MKTOPDIR=/home/adan/projects/MT6795/alps ARCH_MTK_PLATFORM=mt6795 ./build.sh
MTK_PLATFORM=MT6795 TARGET_DEVICE=evb6795_64_tee TARGET_PRODUCT=evb6795_64_tee ./fast_build.sh
配置ADB识别DEVICES
-
using lsusb to get idVendor and idProduct
$lsusb
Bus 003 Device 012: ID 0e8d:2003 MediaTek Inc. -
new 51-android.rules file, and add a line, specify ATTRS{idVendor} and ATTRS{idProduct}
$ sudo vim /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="0e8d", ATTRS{idProduct}=="2003",MODE="0666"
$sudo chmod a+rx /etc/udev/rules.d/51-android.rules -
restart udev:
$sudo service udev restart
-
unplug usb and plugin again.
$ adb kill-server
$ adb devices
Install kvm on ubuntu
$ cat /proc/cpuinfo | grep vmx
$ sudo apt-get install qemu-kvm virt-manager bridge-utils libvirt-bin
$ sudo qemu-img create -f qcow2 winxp.img 20G
$ sudo qemu-system-x86_64 -hda winxp.img -cdrom xp.iso -boot d -m 1024 -no-acpi -soundhw all
$ sudo qemu-system-x86_64 -hda winxp.img -boot d -m 512 -no-acpi -soundhw all
$ sudo kvm -hda winxp.img -boot d -m 512 -soundhw all
Mount 网盘共享
sudo mount -t cifs //192.168.5.54/xieke xieke -o username=xieke
sudo kvm-spice -m 1024 -drive file=windows/win7-no.img -boot c -vga qxl --full-screen -spice port=5079,disable-ticketing
spicec -h localhost -p 5079
shift f11 troggle full screen/ window
shift f12 release cusor if captured
shift f5 connect to server
shitf f6 disconnect from server
Java environment
export JAVA_HOME=/usr/lib/jvm/jdk7
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk7/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk7/bin/javac 300
sudo update-alternatives --config java
Git tools
git difftool -t meld -y commitId1 commitId2
Gtags environment
$ find . -type f -print >/tmp/list # make a file set
$ vi /tmp/list # customize the file set
$ gtags -f /tmp/list
export GTAGSLIBPATH=/usr/src/lib:/usr/src/sys
在代码目录中运行etags -R
如果要向现有tags表中添加,则运行etags -a
$ find ./ -name "*.java" -o -name "*.cpp" -o -name "*.[chCH]" | xargs etags -a
$ find . -name "*.[chCH]" -print | etags -
M-. 访问tag
C-u M-. 访问下一个tag
M-* 返回
(setq-default indent-tabs-mode nil)
另外还认识了两个命令:
M-x tabify
将所有超过两个的连接空格使用TAB替换掉。
M-x untabify
将所有TAB使用适当个数的空格替换掉。
emacs 在Mark Set 间跳转快捷键:
C-u C-@ 在本缓冲区中根据Mark Set的顺序依次向后跳转。
C-x C-@ 在全局中根据Mark Set的顺序依次向后跳转。
使用imenu命令跳转到当前文件中的函数:
M-x imenu RET
清理代码中的不必要的空格和TAB
如果代码文件最后面,或者行尾有很多的不必要的空格,并且你就是完美主义
者,有洁癖,那么可以使用 whitespace-buffer
看一下当前buffer中有哪些“垃圾”。如果要清理,简单的使用 whitespace-cleanup
就可以了。
Emacs替换^M
遇到用Emacs打开的文件都有^M, 这个应该是Mac机产生的换行符(这样的代码看起来会死人的),以为简单的m-x repl RET s RET在输入^M替换一下就可以,但是很快发现,这个办法根本不行, ^M这个根本不是输入的研究了一下, 终于找到了办法:
C-x RET c undecided-unix RET C-x C-w RET y
M-S < 到文档的最开始处
M-x replace-string RET C-q C-m RET RET
这样就ok了, 注意上面的C-q C-m就是换行符的生成方法,而不是简单的输入^M.
文档搜索
alt+s o : search text in emacs
Emacs中文输入法
C-\ (toggle-input-method)
M-x set-input-method
C-x RET C-\ choose chinese methods
Scrot截屏
scrot ~/Pictures/my_desktop.png
scrot -s
scrot -s -d 10
scrot -q 50
scrot -t 10
scrot -e 'mv $f ~/screenshots
Markdown 文档
pandoc -f markdown -t html -s -c /home/sunbjt/emacs/style.css --mathjax --highlight-style espresso workrecords.md -o index.html
C-c C-c v, 和 p一样,是对 md 文件的 browser 端的预览
C-c C-c e, 重新刷新已打开的预览
C-c C-c m, 在buffer里看html的源代码