零。 r 在mac中读取clipboard问题
一。 office 乱码读取问题
零。 r 在mac中读取clipboard问题
content <- read.table(file=”clipboard”,header=TRUE) #windows
Error in file(file, “rt”) : 无法载入X11模块
解决方案:
read.table(pipe(“pbpaste”,sep=’\t’,header=T)->data
dat <- read.table(pipe(“pbpaste”),header=TRUE)# mac
或者
read.delim(pipe(“pbpaste”)) #mac
clip <- read.delim(pipe(“pbpaste”, “w”))
my_frame <- read.delim(“ftp://ftp.xxx.txt“, na.strings = “”, fill=TRUE, header=T, check.names=F, sep=”\t”)#:读取网上的文件;
一。 office 乱码读取问题
最好的解决方案:用numbers打开另存
解决方案1:使用openxlsx包
解决方案2:引用自:http://www.dcharm.com/?p=8
一般Windows用户在使用Excel处理数据文件时都不会关心文件的编码,因为Excel支持Windows上默认使用的简体中文编码GB2312,但使用MAC的用户就没有那么省心了,一不小心就会碰到中文乱码的问题。在Mac上的Excel中为什么会出现中文乱码的情况呢?这是就需要了解一些文件编码的背景知识。文件在计算内部采用的是二进制(0和1)的形式存放,那么给定一个0和1组成的串,计算机怎么知道这个串代表的是英文中的’a’还是中文里面的’好’呢?这时就需要用到文件的编码,不同的编码告诉了计算机怎么去识别文件的内容,例如GB2312编码告诉计算机’001’代表的是中文里面的’好’,而UTF8编码告诉计算机’001’代表的是英文里面的’a’(这个例子只是为了简述文件编码的作用,实际上的编码比这个复杂得多)。由于UTF-8编码同时支持中文、还是日文、韩文、阿拉伯文在类的各种语言,所以它在Mac中被广泛使用,而目前Mac上的Excel在导入CSV文件时虽然给出了UTF8的选项,但是导入以后的中文还是乱码,这是因为它实际上是不支持UTF8编码方式导致的,至少对于Excel 2011 for Mac是这样。那么怎么解决这个问题呢,方法很简单:将文件的编码方式由UTF8转为Excel支持的中文编码方式,Mac上的iconv工具专门就可以用来干这个事情。例如,在Excel给出的中文编码方式中有GB18030,那么我们可以通过Mac上的iconv工具将文件编码由UTF8转为GB18030。只需要在命令行中键入如下的命令:
iconv -f UTF8 -t GB18030 a.csv >b.csv
就可以将a.csv文件的编码方式由UTF8 变为GB18030并写入到b.csv文件中,在Excel中导入b.csv文件中的内容,我们会发现烦人的中文乱码消失的无影无踪了!
差点忘了最重要的一个问题,使用iconv的前提是我们知道文件的编码,那么Mac上怎么知道文件的编码呢?其实很容易啦,首先用Mac自带的编辑器vim打开文件,然后使用命令
:set fileencoding
vim就会在屏幕的下方显示文件的编码。
sublime text常用操作
2014-05-08 分类:程序 阅读(799) 评论(0)
每位程序员,都会追求适合自己的强大而灵活的代码编辑器,本站强烈推荐Sublime Text。
修改了文件但没有保存,这时退出软件,软件不询问用户是否要保存的,因为无论是用户自发退出还是意外崩溃退出,下次启动软件后,之前的编辑状态都会被完整恢复,就像退出前时一样。
支持强大的多行选择和多行编辑,强大的快捷命令,即时的文件切换,多重选择功能允许在页面中同时存在多个光标。
支持多种布局和代码缩略图。
支持自定义键绑定,菜单和工具栏。
代码片段(Snippet)功能,可以将常用的代码片段保存起来,需要时随时调用。
支持Vim模式下的多数命令。
免费无限期试用。
一、插件管理
1、安装Package Control
按Ctrl+~调出console,输入下面的指令。
Sublime Text 2
import urllib2,os,hashlib; h = ‘7183a2d3e96f11eeadd761d777e62404’ +
‘e330c659d4bb41d3bdf022e94cab3cd0’; pf = ‘Package Control.sublime-
package’; ipp = sublime.installed_packages_path(); os.makedirs( ipp
) if not os.path.exists(ipp) else None; urllib2.install_opener(
urllib2.build_opener( urllib2.ProxyHandler()) ); by =
urllib2.urlopen( ‘http://sublime.wbond.net/’ + pf.replace(’ ‘,
‘%20’)).read(); dh = hashlib.sha256(by).hexdigest(); open(
os.path.join( ipp, pf), ‘wb’ ).write(by) if dh == h else None;
print(‘Error validating download (got %s instead of %s), please try
manual install’ % (dh, h) if dh != h else ‘Please restart Sublime
Text to finish installation’)
1
2
3
4
5
6
7
8
9
10
11
import urllib2,os,hashlib; h = ‘7183a2d3e96f11eeadd761d777e62404’ +
‘e330c659d4bb41d3bdf022e94cab3cd0’; pf = ‘Package Control.sublime-
package’; ipp = sublime.installed_packages_path(); os.makedirs( ipp
) if not os.path.exists(ipp) else None; urllib2.install_opener(
urllib2.build_opener( urllib2.ProxyHandler()) ); by =
urllib2.urlopen( ‘http://sublime.wbond.net/’ + pf.replace(’ ‘,
‘%20’)).read(); dh = hashlib.sha256(by).hexdigest(); open(
os.path.join( ipp, pf), ‘wb’ ).write(by) if dh == h else None;
print(‘Error validating download (got %s instead of %s), please try
manual install’ % (dh, h) if dh != h else ‘Please restart Sublime
Text to finish installation’)
Sublime Text 3
import urllib.request,os,hashlib; h =
‘7183a2d3e96f11eeadd761d777e62404’ +
‘e330c659d4bb41d3bdf022e94cab3cd0’; pf = ‘Package Control.sublime-
package’; ipp = sublime.installed_packages_path();
urllib.request.install_opener( urllib.request.build_opener(
urllib.request.ProxyHandler()) ); by = urllib.request.urlopen(
‘http://sublime.wbond.net/’ + pf.replace(’ ‘, ‘%20’)).read(); dh =
hashlib.sha256(by).hexdigest(); print(‘Error validating download
(got %s instead of %s), please try manual install’ % (dh, h)) if dh
!= h else open(os.path.join( ipp, pf), ‘wb’ ).write(by)
1
2
3
4
5
6
7
8
9
10
import urllib.request,os,hashlib; h =
‘7183a2d3e96f11eeadd761d777e62404’ +
‘e330c659d4bb41d3bdf022e94cab3cd0’; pf = ‘Package Control.sublime-
package’; ipp = sublime.installed_packages_path();
urllib.request.install_opener( urllib.request.build_opener(
urllib.request.ProxyHandler()) ); by = urllib.request.urlopen(
‘http://sublime.wbond.net/’ + pf.replace(’ ‘, ‘%20’)).read(); dh =
hashlib.sha256(by).hexdigest(); print(‘Error validating download
(got %s instead of %s), please try manual install’ % (dh, h)) if dh
!= h else open(os.path.join( ipp, pf), ‘wb’ ).write(by)
2、用Package Control安装其他插件
按下Ctrl+Shift+P调出命令面板,输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。
二、推荐插件
ConvertToUTF8 编码转换插件
Emmet 快速的HTML、CSS编写插件
JS Format JS代码格式化插
三、快捷键
Ctrl+L 选择整行(按住-继续选择下行)
Ctrl+KK 从光标处删除至行尾
Ctrl+K Backspace 从光标处删除至行首
Ctrl+J 合并行(已选择需要合并的多行时)
Ctrl+KU 改为大写
Ctrl+KL 改为小写
Ctrl+D 选择字符串 (按住-继续选择下个相同的字符串)
Ctrl+M 光标移动至括号内开始或结束的位置
Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果)
Ctrl+Shift+c转换为utf8
Ctrl+R 搜索指定文件的函数标签
Ctrl+G 跳转到指定行
Ctrl+KT 折叠属性
Ctrl+K0 展开所有
Ctrl+U 软撤销
Ctrl+T 词互换
Tab 缩进 自动完成
Shift+Tab 去除缩进
Ctrl+Enter 光标后插入行
Ctrl+F2 设置书签
F2 下一个书签
Shift+F2 上一个书签
shift+鼠标右键 列选择
Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑
Alt+. 闭合当前标签
F6 检测语法错误
F9 行排序(按a-z)
F11 全屏模式
Ctrl+Shift+Enter 光标前插入行
Ctrl+Shift+[ 折叠代码
Ctrl+Shift+] 展开代码
Ctrl+Shift+↑ 与上行互换
Ctrl+Shift+↓ 与下行互换
Ctrl+Shift+A 选择光标位置父标签对儿
Ctrl+Shift+D 复制光标所在整行,插入在该行之前
ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找
Ctrl+Shift+K 删除整行
Ctrl+Shift+L 鼠标选中多行(按下快捷键),即可同时编辑这些行
Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号)
Ctrl+Shift+P 打开命令面板
Ctrl+Shift+/ 注释已选择内容
Ctrl+Shift+Enter 光标前插入行
Ctrl+PageDown 、Ctrl+PageUp文件按开启的前后顺序切换
Ctrl+鼠标左键 可以同时选择要编辑的多处文本
Shift+鼠标右键(或使用鼠标中键)可以用鼠标进行竖向多行选择
Shift+Tab 去除缩进
Alt+Shift+1~9(非小键盘)屏幕显示相等数字的小窗口
mac