Per*_*erS 2 wine sublime-text 16.04
我最近为 Ubuntu 更改了 Windows 操作系统。作为开发人员,我真的很喜欢 Windows 上的 WinSCP,但我在 Linux 上找不到任何其他合适的程序。
但是,在 Wine 上运行的 WinSCP 一切正常,只是我无法简单地双击文件并在 Sublime Text Editor 中打开它。
在首选项 -> 编辑器中,我尝试将 /usr/bin/subl 和 /opt/sublime_text/sublime_text 设置为默认编辑器,但这两个都不适合我。
当我在远程服务器上打开一个文件时,Sublime 被打开但它是空的,里面没有内容。或者,如果右键单击并从菜单中选择“打开”,我会收到“没有配置 Windows 程序来打开此类文件”。
有谁知道如何设置 WinSCP 以使用本地编辑器打开文件?
小智 6
我遇到了完全相同的问题 ( Ubuntu + Wine + WinSCP + Sublime
),一旦我尝试使用 Sublime 进行编辑,它就会给我空白页。谷歌搜索没有给我任何东西,所以我为此制定了自己的解决方案(已测试Ubuntu 14.04 Trusty
)
这是我的解决方案和研究。
解决方案测试,并与工作Ubuntu 14.04 Trusty
+ Sublime 3
+ Wine-1.6.2
。我认为它也适用于 Debian(尚未测试)。
我已将解决方案拆分为 2 个脚本,以拥有两个通用工具而不是一个特定工具。
解决方案是添加一个脚本来修复路径,然后才能到达 Sublime:
wine2unix-path
会将 Wine 的“windows 路径”转换为真实的文件系统路径并修复它的格式(引号和双反斜杠\\
)sublime.exe
将使用固定的真实文件路径wine2unix-path
,并将其传递给 Sublime。我将第一个脚本命名为“sublime.exe”,否则当我更新编辑器路径时,Wine 拒绝在“编辑器”设置中看到它。
操作步骤:
/usr/local/bin/wine2unix-path
/usr/local/bin/sublime.exe
WinScp
步骤 1. wine2unix-path
示例用法:wine2unix-path c:\\Program files\\WinScp\\Log.txt
返回/home/YOUR_CURRENT_LINUX_USER/.wine/drive_c/Program files/WinScp/Log.txt
。
sudo touch /usr/local/bin/wine2unix-path
sudo chmod +x /usr/local/bin/wine2unix-path
将以下脚本放入其中:
#!/bin/bash
# Trim quotes
FILE=$(echo "$@" | sed -e "s#\(^['\"]*\)\|\(['\"]*$\)##g")
USER_NAME=$(id -u -n)
DRIVE_LETTER="`echo $FILE | sed -e "s/^\([a-Z]\):.*/\1/" | awk '{print tolower($0)}'`"
echo "$FILE" | sed \
-e 's#\\#\/#g' \
-e "s#^[a-Z]:#/home/${USER_NAME}/.wine/drive\_${DRIVE_LETTER}#"
exit 0
Run Code Online (Sandbox Code Playgroud)
这个脚本的作用:
FILE
- 获取文件路径并修剪"
和'
引号(如果有)USER_NAME
- 获取当前用户名/home/USER
DRIVE_LETTER
- 从文件路径(第一个字符)获取驱动器号。它可能是不同的,指的C:\
是.wine/drive_c
,D:\
指的是.wine/drive_d
等等。C:\
wine 文件夹的完整路径替换根路径。C:\
变成/home/USER/.wine/drive_c
\\
(逃脱的窗口方式反斜线)用\
,否则C:\\users\\files
成为C:usersfiles
当它通过升华。步骤 2. sublime.exe
sudo touch /usr/local/bin/sublime.exe
sudo chmod +x /usr/local/bin/sublime.exe
/opt/sublime_text/sublime_text
使用您的崇高路径更改下面(最后一行)脚本中的路径。我Sublime version 3103
的位于/opt/sublime_text/sublime_text
#!/bin/bash
# Wrapper script to open sublime from Wine
#
# File path passed as a first argument should be "quoted" and "escaped"
# other wise spaces will split path into two
#
# For example: sublime.exe "c:\\Program files\\WinScp\\Log.txt"
#
# wine2unix-path is a help script to convert "Wine windows paths"
# to real paths in linux so sublime can access it
#
# For for example:
# ./sublime.exe "c:\\Program files\\WinScp\\Log.txt"
# Will result:
# /home/YOUR_CURRENT_LINUX_USER/.wine/drive_c/Program files/WinScp/Log.txt
unixpath="`wine2unix-path $1`"
/opt/sublime_text/sublime_text "$unixpath"
Run Code Online (Sandbox Code Playgroud)
这个脚本的作用:
步骤 3. 在 WinScp 中更新编辑器路径
WinScp
Options > Preferences > Editors
Edit
按钮Z:\usr\local\bin\sublime.exe \"!.!\"
Ok
。完毕Add
(以添加 sublime 编辑器并将其分配给文件类型)。Z:\usr\local\bin\sublime.exe \"!.!\"
*.ini; *.txt; *.php; *.tpl
或*.*
所有文件类型Editor preferences
. 它将优先考虑您为 Sublime 选择的文件类型。问题出现在 Wine 传递给 Sublime 的文件路径中:
"
或'
当它传递给崇高\\
一个例子:
/server/user/www/my project/some other file.php
Z:\opt\sublime_text\sublime_text /home/CURRENT_USER/.wine/drive_c/Program files/WinScp/server/user/www/my project/some file.php
(路径未引用或转义)/opt/sublime_text/sublime_text /home/CURRENT_USER/.wine/drive_c/Program files/WinScp/server/user/www/my project/some file.php
./opt/sublime_text/sublime_text
/home/CURRENT_USER/.wine/drive_c/Program
files/WinScp/server/user/www/my
project/some
file.php
由于缺少引号,结果路径被空格分割。正如我后来发现的那样,\\
路径中的双重转义也存在问题
归档时间: |
|
查看次数: |
1899 次 |
最近记录: |