-
-
Notifications
You must be signed in to change notification settings - Fork 181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tempfile.NamedTemporaryFile 缺少 encoding 时 出错 #156
Comments
为什么关了? |
'encoding' 'enc' Removed. |vim-differences| {Nvim} 好像添加 一行 代码就解决了, 所以 关了. |
你使用的是Python3,Python2的NamedTemporaryFile()没有encoding这个参数。 |
这样啊.
我看了下代码, 好像为了用户的需求牺牲了性能.
还是不要修改好. 我自己本地改一下就行.
希望不要像 denite 那样, 越改越复杂.
leaderf 明显要快.
用了一下你的 fuzzyMatchC, 希望将来可以用在 deoplete 上.
thx.
…On Sun, May 13, 2018 at 9:46 AM, Yggdroot ***@***.***> wrote:
你使用的是Python3,Python2的NamedTemporaryFile()没有encoding这个参数。
所以对于插件的修改,我不能简单的加上这么一句。而且还要考虑vim(not neovim)上,没有设置set encoding=utf-8的情况。
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#156 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AD8RYPXxxP7-celXwWuRldDgCGuhtqwuks5tx5CMgaJpZM4T8epP>
.
|
我在gvim上复现了,只有在是Python3的时候才会有错,你能帮忙确认一下你那边使用Python2是否报错吗? |
from tempfile import NamedTemporaryFile
with NamedTemporaryFile(mode='w+', delete=False, suffix='xx_') as f:
f.write("""set listchars=tab:→\ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨""")
# f.write("""xxxx""") 其实直接使用 py3 运行就会 报错. λ py2 D:/xx/Python/py3/py1.py
File "D:/xx/Python/py3/py1.py", line 5
SyntaxError: Non-ASCII character '\xe2' in file D:/xx/Python/py3/py1.py on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
别说运行, comment 掉 都不能运行. |
以上代码保存为 utf-8的 |
py2 文档 添加 coding: utf8可以正常运行. |
# coding: utf8 |
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tempfile import NamedTemporaryFile
with NamedTemporaryFile(mode='w+', delete=False, suffix='xx_') as f:
f.write("""set listchars=tab:→\ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨""")
# f.write("""xxxx""") 有非ASCII字符,需要在代码开头加上 |
修复了。 |
tempfile 频繁 读写, 不是很消耗资源吗? |
from tempfile import NamedTemporaryFile
from functools import partial
if 3 > 2:
fn = partial(NamedTemporaryFile, encoding='utf-8')
else:
fn = NamedTemporaryFile
with fn(mode='w+', delete=False, suffix='_xx_') as f:
f.write("ddddddddddddset listchars=tab:→\ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨") if 一次, 不用每次 if |
首先,一个代码文件一般不是很大,这些操作在现代计算机上都会很快,一般不会有什么感觉。 |
我知道未保存才用tempfile, 其实我之前就搜 能否 让 ctags daemon 运行, 别人早就提了. 是我想太多了吧, 也可能是我更关心我的电脑吧. 其实我是担心电费而已. 就这样吧. |
当 未保存文档 出现:
set listchars=tab:→\ ,nbsp:␣,trail:•,extends:⟩,precedes:⟨
使用 utf-8 解决
The text was updated successfully, but these errors were encountered: