عندما أقوم بتشغيل vim مع powerline مثبت كمستخدم عادي ، فإنه يعمل بشكل جيد. عندما أقوم sudo su إلى الجذر ، فإنه يعمل بشكل جيد ولكن عندما أكون مستخدمًا عاديًا وأقوم بعمل sudo vim ، أحصل على الخطأ التالي:
ERROR:vim:Failed to create renderer: [Errno 28] No space left on device
Error detected while processing VimEnter Auto commands for "*":
Traceback (most recent call last):
Error detected while processing VimEnter Auto commands for "*":
File "/usr/local/lib/python2.7/dist-packages/powerline/__init__.py", line 361, in update_rendererError detected while processing VimEnter Auto commands for "*":
self.create_renderer(**create_renderer_kwargs)
Error detected while processing VimEnter Auto commands for "*":
File "/usr/local/lib/python2.7/dist-packages/powerline/__init__.py", line 207, in create_renderer
Error detected while processing VimEnter Auto commands for "*":
self.renderer_options['local_themes'] = self.get_local_themes(self.ext_config.get('local_themes'))
Error detected while processing VimEnter Auto commands for "*":
File "/usr/local/lib/python2.7/dist-packages/powerline/vim.py", line 75, in get_local_themes
Error detected while processing VimEnter Auto commands for "*":
for key, val in local_themes.items()))
Error detected while processing VimEnter Auto commands for "*":
File "/usr/local/lib/python2.7/dist-packages/powerline/vim.py", line 75, in <genexpr>
Error detected while processing VimEnter Auto commands for "*":
for key, val in local_themes.items()))
Error detected while processing VimEnter Auto commands for "*":
File "/usr/local/lib/python2.7/dist-packages/powerline/vim.py", line 66, in load_theme_config
ليس لدي أي ملفات .pyc في ريبو باورلاين الخاص بي ونتيجة df -i هي
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/it12--0391-root 14991360 421921 14569439 3% /
none 500539 1 500538 1% /sys/fs/cgroup
udev 498075 516 497559 1% /dev
tmpfs 500539 488 500051 1% /run
none 500539 5 500534 1% /run/lock
none 500539 13 500526 1% /run/shm
none 500539 25 500514 1% /run/user
/dev/sda1 124496 273 124223 1% /boot
لذلك لا ينبغي أن يكون لدي أي مشكلة مع نفاد inodes.
أستخدم sudo vim طوال الوقت ، لكنني لم أواجه هذه المشكلة مطلقًا. كما تقول ، ربما لا تكون مشكلة inode ، ولكنها أيضًا ليست مشكلة في Powerline أو Python نظرًا لأنها تستخدم مكتبات Linux للكتابة على القرص. يجب عليك البحث عن هذه المشكلة باعتبارها مشكلة Linux ، ويرجى نشر الحل هنا إذا وجدت ذلك.
قد تكون مشكلة في نفاد ساعات inotify.
يتم الإغلاق بسبب نقص التعليقات وكونها قديمة جدًا. على الرغم من أنني ما زلت أعتقد أنها مشكلة في ساعات inotify ، على الرغم من أنك قد تحاول استخدام قيمة مختلفة في /proc/sys/fs/inotify/max_user_watches
.
واجهت نفس المشكلة على Arch Linux ، بعد البحث قليلاً ، وجدت هذا الدليل الجميل:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
_ لاحظ أن أمر القوس مختلف_
هذا ما كنت أواجهه:
vim
2016-03-14 20:38:59,911:ERROR:vim:powerline:Failed to create renderer: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
Traceback (most recent call last):
File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 842, in update_renderer
self.create_renderer(**cr_kwargs)
File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 582, in create_renderer
self.config_loader.set_watcher(self.common_config['watcher'])
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 84, in set_watcher
self.watcher.transfer_calls(watcher)
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 49, in transfer_calls
getattr(watcher, attr)(*args, **kwargs)
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/watcher/inotify.py", line 100, in watch
self.handle_error()
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/inotify.py", line 138, in handle_error
raise OSError(eno, self.os.strerror(eno) + str(extra))
OSError: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
Traceback (most recent call last):
File "<string>", line 12, in <module>
File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 896, in setup
self.do_setup(*args, **kwargs)
File "/home/gableroux/.vim/bundle/powerline/powerline/vim.py", line 211, in do_setup
self.update_renderer()
File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 842, in update_renderer
self.create_renderer(**cr_kwargs)
File "/home/gableroux/.vim/bundle/powerline/powerline/__init__.py", line 582, in create_renderer
self.config_loader.set_watcher(self.common_config['watcher'])
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 84, in set_watcher
self.watcher.transfer_calls(watcher)
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/config.py", line 49, in transfer_calls
getattr(watcher, attr)(*args, **kwargs)
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/watcher/inotify.py", line 100, in watch
self.handle_error()
File "/home/gableroux/.vim/bundle/powerline/powerline/lib/inotify.py", line 138, in handle_error
raise OSError(eno, self.os.strerror(eno) + str(extra))
OSError: [Errno 28] No space left on deviceYou may need to increase the inotify limits on your system, via /proc/sys/fs/inotify/max_user_*
An error occurred while importing powerline module.
This could be caused by invalid sys.path setting,
or by an incompatible Python version (powerline requires
Python 2.6, 2.7 or 3.2 and later to work). Please consult
the troubleshooting section in the documentation for
possible solutions.
Press ENTER or type command to continue
معلومات:
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
dev 978493 516 977977 1% /dev
run 979167 767 978400 1% /run
/dev/sda2 9175040 954797 8220243 11% /
tmpfs 979167 199 978968 1% /dev/shm
tmpfs 979167 12 979155 1% /sys/fs/cgroup
tmpfs 979167 537 978630 1% /tmp
/dev/sda1 0 0 0 - /boot/efi
tmpfs 979167 31 979136 1% /run/user/1000
tmpfs 979167 10 979157 1% /run/user/620
vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Mar 9 2016 16:25:55)
Included patches: 1-1529
Compiled by Arch Linux
Huge version without GUI. Features included (+) or not (-):
+acl +farsi +mouse_netterm +tag_binary
+arabic +file_in_path +mouse_sgr +tag_old_static
+autocmd +find_in_path -mouse_sysmouse -tag_any_white
-balloon_eval +float +mouse_urxvt +tcl/dyn
-browse +folding +mouse_xterm +terminfo
++builtin_terms -footer +multi_byte +termresponse
+byte_offset +fork() +multi_lang +textobjects
+channel +gettext -mzscheme +title
+cindent -hangul_input +netbeans_intg -toolbar
-clientserver +iconv +packages +user_commands
-clipboard +insert_expand +path_extra +vertsplit
+cmdline_compl +job +perl/dyn +virtualedit
+cmdline_hist +jumplist +persistent_undo +visual
+cmdline_info +keymap +postscript +visualextra
+comments +langmap +printer +viminfo
+conceal +libcall +profile +vreplace
+cryptv +linebreak +python/dyn +wildignore
+cscope +lispindent +python3/dyn +wildmenu
+cursorbind +listcmds +quickfix +windows
+cursorshape +localmap +reltime +writebackup
+dialog_con +lua/dyn +rightleft -X11
+diff +menu +ruby/dyn -xfontset
+digraphs +mksession +scrollbind -xim
-dnd +modify_fname +signs -xsmp
-ebcdic +mouse +smartindent -xterm_clipboard
+emacs_tags -mouseshape +startuptime -xterm_save
+eval +mouse_dec +statusline -xpm
+ex_extra +mouse_gpm -sun_workshop
+extra_search -mouse_jsbterm +syntax
system vimrc file: "/etc/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -L/usr/local/lib -Wl,--as-needed -o vim -lm -lncurses -lelf -lnsl -lacl -lattr -lgpm -ldl -Wl,-E -Wl,-rpath,/usr/lib/perl5/core_perl/CORE -Wl,-O1,--sort-common,--as-needed,-z,relro -fstack-protector-strong -L/usr/local/lib -L/usr/lib/perl5/core_perl/CORE -lperl -lpthread -lnsl -ldl -lm -lcrypt -lutil -lc -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lieee -lm
قبل أن أقوم بزيادة /proc/sys/fs/inotify/max_user_instances
tail /proc/sys/fs/inotify/*
==> /proc/sys/fs/inotify/max_queued_events <==
16384
==> /proc/sys/fs/inotify/max_user_instances <==
128
==> /proc/sys/fs/inotify/max_user_watches <==
8192
بعد
tail /proc/sys/fs/inotify/*
==> /proc/sys/fs/inotify/max_queued_events <==
16384
==> /proc/sys/fs/inotify/max_user_instances <==
128
==> /proc/sys/fs/inotify/max_user_watches <==
524288
يعمل بشكل جيد الآن :)
شكرا GabLeRoux ، العمل
شكرًا GabLeRoux ، إنه يعمل بشكل رائع!
شكرًا مرة أخرى GabLeRoux على الرد المفصل ، ساعدني في Fedora 27 اليوم.
واجهت نفس المشكلة بعد تثبيت أداة النسخ الاحتياطي ، والتي كانت تعالج وتحميل أكثر من 183 ألف ملف في ذلك الوقت ، وهذا يفسر سبب نفاد ساعات inotify.
echo 524288 > /proc/sys/fs/inotify/max_user_watches
أصلحه.
JensTimmerman شكرا على الاقتراح. لقد نجح هذا بالنسبة لي على Ubuntu 16.04.
كان علي فقط:
$ sudo su
$ echo 524288 > /proc/sys/fs/inotify/max_user_watches
$ exit
التعليق الأكثر فائدة
واجهت نفس المشكلة على Arch Linux ، بعد البحث قليلاً ، وجدت هذا الدليل الجميل:
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
_ لاحظ أن أمر القوس مختلف_
هذا ما كنت أواجهه:
معلومات:
قبل أن أقوم بزيادة
/proc/sys/fs/inotify/max_user_instances
بعد
يعمل بشكل جيد الآن :)