Showing posts with label 小技巧. Show all posts
Showing posts with label 小技巧. Show all posts

Friday, April 19, 2013

VIM杀手秘技


该文内容来自: http://stackoverflow.com/questions/726894/what-are-the-dark-corners-of-vim-your-mom-never-told-you-about 并没有列出所有的,只是选择了投票比较多的。的确都是一些很实用的技巧

:w !sudo tee %
在Linux系统下面辛苦编辑了一个配置文件,要保存的时候发现要root权限,怎么办?这个命令就是让你不用以root权限来运行VIM但是可以编辑系统文件的命令。

:earlier 15m
把当前文件恢复到15分钟前的状态, 这个时间参数除了分钟,还有很多别的格式。

删除指定范围 diwdi(di"
diw 删除当前词
di( 或者 di) 删除当前括号内的内容,光标要在括号上,或者括号内
di" 删除引号内的内容
相同的命令还有ciw , ci( , ci" 还有dt, dt), dt",ct, ct), ct"

:! [command] :.! [command]
前一个是执行外部命令,后面一个只是在:后面加了一个"." 好处是把命令的输出直接放在当前行。比如你要在文档里面插入当前日期,就可以用 :.! date

:%!xxd  把VIM变成Hex Editor
:%!xxd -r 从Hex Editor变回去

:g/rgba/y A
把所有包含rgba的行复制到a寄存器里面,然后可以用 "ap粘帖,这里用大写A是取为了把找打的行追加在寄存器里面,否则就只有最后一行被放在了寄存器里面了

:verbose set xxxxxx?
有时候.vimrc的一些配置会被一些插件或者autocommand重新设置,要找出哪些地方设置了这个,就用这个命令, xxxxxx这里泛指VIM的设置项,比如 :verbose set cindent? 就找出来哪些地方设置了cindent

q:
查看命令历史,这个我们应该经常不小心就掉出来了

gv
重新选择上次的选择

gf, gF
gf把光标移到文件名上,比如c文件里面include的头文件,按gf就会打开这个文件
gF跟gf已经,这个命令认识“文件名:行号”的格式,可以直接跳转到指定行

Tuesday, February 5, 2013

Windows 7 右键默认开启 "Open Command Window here"

windows 7 里默认要按住SHIFT点右键才会在菜单中出现“Open Command Window Here”的选项,通过修改注册表可以让此选项默认打开,不用再按SHIFT键

1.  运行regedit
2.  把下面3个KEY的“Extended”值逐个删除。
     HKEY_CLASSES_ROOT\Directory\shell\cmd
     HKEY_CLASSES_ROOT\Directory\Background\shell\cmd
     HKEY_CLASSES_ROOT\Drive\shell\cmd
3. Extened删除以后,右键点击文件夹,或者点击文件浏览器里面的空白处,都会出现“Open Command Window Here"的选项

Wednesday, January 9, 2013

五个小技巧让Sublime Text 2更漂亮

Sublime Text 2默认的界面和配色已经十分漂亮养眼,这里再提供5个小技巧,让Sublime Text 2 的界面更加漂亮一些。

打开用户自定义文件, Preferences -> Settings - User

1. 改变光标的样式

"caret_style": "phase"

这个会把光标的样式从闪烁变成淡入淡出,其余的选项还有“smooth”, “phase”, “blink”, “wide”, “solid”

2. 高亮当前行

"highlight_line": true

这个就不用解释了

3. 增加行间距

"line_padding_bottom": 1,
"line_padding_top": 1

这个会在每行的上下都增加两个像素的空格,让你阅读代码的体验更佳

4. 一直现在代码折叠箭头

"fade_fold_buttons": false

这个会让代码折叠箭头一直显示

5. 让文件列表里面的文件夹黑体显示

"bold_folder_labels": true

这样文件夹就是黑体字,文件就是普通字体,让人们比较容易区分文件夹和文件

转自: http://wesbos.com/sublime-text-5-visual-tweaks/

Wednesday, January 2, 2013

Fix "was unexpected at this time" and “not recognized as an internal or external command” when run batch script on Windows 7 64bit system

My company use DOS batch script to build project. We still need to maintain some legacy projects. When run the build script from legacy project on 64bit Windows 7 system, I saw error "xxx was unexpected at this time", then the building script exit.

I did some search online and found to change
set x=%path% to set x="%path%" will solve this issue.

But after the modification, i saw new error of "xxx not recognized as an internal or external command", the xxx can be as simple as cmd, ping

After quite some time of Googling, finally I found a solution, change all path contain Program Files (x86) to PROGRA~2 in the PATH environment variable. And that solved my problem.

I wrote it down and hope my experience can help other people facing similar issues.

Friday, August 24, 2012

用golang生成key不是大写的json数据

前一段时间用go写了一个查看perforce的history的小程序,go没有什么成熟的ui包,所以我选用web界面,程序本身做两件事情,一个后台更新perforce的history到本地的sqlite数据库,另外一个后台当作web服务器,处理client的request,生成json数据。

在写这个程序的时候,发现要生成json数据的结构里field名字首字母要大写。因为是一个自己用的小程序,也没有去深究到底可不可以生成首字母是小写的json数据。今天逛stackoverflow的时候看到有人问这个问题,看了看,原来go的json包有解决办法,只是自己看文档的时候没有怎么注意罢了。要加tag来做这件事情。

下面这段示例代码就的output:

{"field_a":1234,"field_b":"hello"}

package main

import "fmt"
import "encoding/json"

func main() {
    type Test struct {
        A int `json:"field_a"`
        B string `json:"field_b"`
    }
    A := Test{1234, "hello"}

    b, _ := json.Marshal(A)
    fmt.Println(string(b))
}

Wednesday, August 8, 2012

putty + tmux 结合实现命令行多窗口

最近要远程登录Linux系统做一些东西,用putty一次 只能够执行一个程序,要在不同的目录运行不同的东西,要打开几个putty,很是麻烦。Google了一下,找到tmux这个小程序,参考了别人的配置,自己稍加改动,现在使用起来真的很爽。

我的配置文件:

##########################################################
# STATUS BAR
set -g status-utf8 on
set -g status-key vi
set -g status-interval 1
set -g status-attr bright
set -g status-fg white
set -g status-bg black
set -g status-left-length 20
set -g status-left '#[fg=green][#[fg=red]#S#[fg=green]]#[default]'
set -g status-justify centre
set -g status-right '#[fg=green][%m/%d %H:%M:%S]#[default]'
setw -g window-status-current-format '#[fg=yellow](#I.#P#F#W)#[default]'
setw -g window-status-format '#I#F#W'


##########################################
## TERMINAL EMULATOR TITLES
set -g set-titles on
set -g set-titles-string "#(tmux ls | awk -F: '{print $1}' | xargs | sed 's/\ / | /g')"


##########################################
## KEy BINDINGS
unbind C-b
set -g prefix C-s

# - = vertical split
unbind '"'
bind - split-window -v

# | = horizontal split
unbind %
bind \ split-window -h

# VIM Style movement
bind k selectp -U   # choose top panel
bind j selectp -D   # choose bottom panel
bind h selectp -L   # choose left panel
bind l selectp -R   # choose right panel

# bind ALT+Arrow to select panel
bind -n M-Up selectp -U   # choose top panel
bind -n M-Down selectp -D   # choose bottom panel
bind -n M-Left selectp -L   # choose left panel
bind -n M-Right selectp -R   # choose right panel


# Keys for resize panel
bind -n F9 resizep -U 1   # up
bind -n F10 resizep -D 1  # down
bind -n F11 resizep -L 1  # left
bind -n F12 resizep -R 1  # right

##########################################
## BASIC CONFIG
## utf8 ability
setw -g utf8 on
#
## vi Style Editing
setw -g mode-keys vi
#
## Make mouse useful in copy mode
#setw -g mode-mouse on

#
## Allow mouse to select which pane to use
#set -g mouse-select-pane on
#
## Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
#
## Scroll History
set -g history-limit 30000
#
## Set ability to capture on start and restore on exit window data when running an application
setw -g alternate-screen on
#
## Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50

Friday, October 14, 2011

【小技巧】从text文件里面提取邮箱地址

   1: perl -wne'while(/[\w-\.]+@[\w-\.]+\w+/g){print "$&\n"}' jira.email.txt

【小工具】png2ico创建程序图标

开发应用程序的时候要创建图标可以用这个小工具,主页地址

命令行程序,使用十分简单,先自己准备PNG格式的图像文件,可以准备不同大小的图像(16x16,24x24, 32x32, 48x48, 64x64).然后运行下面命令来创建ico文件

   1: png2ico favicon.ico logo16x16.png logo32x32.png

Friday, October 7, 2011

Amazon Kindle 文件名中文显示的解决

买了Kindle一阵子了,买回来没有做任何改动,直接就可以看中文书,txt,PDF,mobi格式的中文书都可以看,只是如果书名是中文的话,显示有问题。今天网上逛,如意间看到解决办法,在自己的Kindle上试了,是可行的。方法如下

回到HOME的界面, 随便按什么按键,那个SEARCH BAR就会弹出来.输入下面的内容,因为是3行,要分3次输入,每行后面要按Enter键。注意大小写:

   1: ;debugOn 
   2: ~changeLocale zh-CN 
   3: ;debugOff 

输入完成后,需要到Setting里面去重启(restart)

Thursday, July 3, 2008

cygwin不能copy和paste的问题

用cygwin的时候发现不可以和Windows之间copy&paste,google了一下,很容易就解决了: Under Windows NT, open the properties dialog of the console window. The options contain a toggle button, named "Quick edit mode". It must be ON. Save the properties.