今天在研究python + RabbitMQ的时候,根据教程写Hello World,直接在ubuntu server下用vim撸码,发现自己的vim功力还是不深厚,写着不习惯,就想在Mac上写好了,再传到服务器上,能不能把文字编辑和上传二合一呢,就搜了下,发现用Sublime Text和sftp插件就可以实现,下文记录之。
顺便吐个槽,国内的技术文章是“天下文章一大抄”,文章之间基本上就是排版差异;台湾的技术文章质量比我们要高些,看着最舒服的英文的文章,从内容,排版到字体,真心是享受。无脑爱国喷子请走开。
软件环境:Mac OS X El Capitan, Sublime Text 3, Ubuntu Server 16.04, OpenSSH Server
-
先给Sublime Text 安装 Package Controll,这是个管理Sublime Text插件的工具,官网是 https://packagecontrol.io,安装文档在 https://packagecontrol.io/installation
下面我们来安装Package Control:
打开Sublime Text,并按快捷键 CTRL + ` (这不是单引号,而是数字1键左边,Tab键上面那个键),在sublime text下面会出现console界面,console界面下面有个输入区,把下面的代码复制粘贴到输入区,并按下回车import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; 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://packagecontrol.io/' + 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)
等一会儿就会提示安装成功,如果安装不成功,请根据错误提示自行解决吧。
安装sftp插件:在sublime text中按快捷键 CMD + SHIFT + p ,呼出命令面板,在命令面板上有个输入区,输入区下面是过滤后的结果列表,在输入区输入 pci,用键盘的上下键选中结果列表中的 __ Package Control: Install Package __,然后回车,稍等片刻;在之后出现的输入框中输入 sftp,下面的列表中选中sftp的插件,回车安装
若要在本地编辑文件再同步到服务器去,需要将本地的一个目录加入到项目中去,点击菜单中的 __ Project __ -> __ Add Folder to Project ... __,选择一个本地目录,点击 Open,在左边的侧栏中就能看到这个文件夹。
-
下面开始配置连接服务器的信息,在刚才添加的本地目录上点击右键,在弹出菜单中选择 SFTP/FTP -> Map to Remote ...,会自动在本地目录里创建一个新配置文件,是json格式,名字是sftp-config.json,sublime text会自动打开这个文件,服务器连接的信息主要有以下几项:
// 服务器的连接信息 "host": "<服务器地址>" "user": "<登录用户名>" "password": "<登录密码>" "remote_path": "<远程服务器的目录>" // 插件的配置 "save_before_upload": true // 是否在上传前保存文件 "upload_on_save": true // 是否保存文件后立刻上传
基本上配置好这几项就可以使用了
在本地目录上点击右键,菜单 SFTP/FTP 中的 Upload Folder 可以把本地文件上传到服务器, Download Folder可以把服务器上的文件下载到本地文件。通常我会把 upload_on_save 设置为 true,这样每次保存完,文件自动上传到服务器,然后就可以去服务器操作了。