Вы не пытаетесь реализовать типичную разнородную модель контейнера Джошуа Блоха? В основном:
blockquote>public class Favorites { private Map
, Object> favorites = new HashMap , Object>(); public void setFavorite(Class klass, T thing) { favorites.put(klass, thing); } public T getFavorite(Class klass) { return klass.cast(favorites.get(klass)); } public static void main(String[] args) { Favorites f = new Favorites(); f.setFavorite(String.class, "Java"); f.setFavorite(Integer.class, 0xcafebabe); String s = f.getFavorite(String.class); int i = f.getFavorite(Integer.class); } }
Просто используйте
:!chmod +w %
в командном режиме. % будет заменено текущим именем файла.
:!chmod <perms> <file>
и если vi все еще не хочет писать,
:se cpo-=W
Если у вас есть права на запись в файл, вы можете просто использовать восклицательный знак, чтобы заставить его:
:w!
Если у вас нет прав и вам нужно сменить пользователя, но все же хотите записать в файл, иногда вы можете пойти что-то вроде
:w !sudo tee %
После редактирования файла с помощью vim нажмите «esc», а затем «:». Затем введите следующую команду:
w !sudo tee %
Затем нажмите «Enter». Затем введите
:q!
, чтобы успешно выйти из редактора.
Вы пробовали
!chmod +w %
% представляет текущее имя файла.
Вы также можете сопоставить ключ с этим, как Ctrl-W.
:map <C-w> :!chmod +w %<CR>
Обратите внимание, что вы нажимаете Ctrl-V Ctrl-M, чтобы получить <CR>
Я знаю, что это старый пост, но в Vim Version8 была включена функция, с помощью которой вы можете изменять права доступа к файлам.
В соответствии с файлом version8.txt:
setfperm () устанавливает права доступа к файлу
Затем эту функцию можно вызвать с помощью вызов "команда в Vim.
Это делается следующим образом:
:call setfperm("file name","permissions")
Структура строки «permissions» принимает ту же форму, как описано в документации Vim:
getfperm ({fname }) getfperm () Результатом является строка, которая является разрешениями на чтение, запись и выполнение для данного файла {fname}. Если {fname} не существует или его каталог не может быть прочитан, возвращается пустая строка. Результат имеет вид «rwxrwxrwx», где каждая группа флагов «rwx» представляет, в свою очередь, разрешения владельца файла, группы, к которой принадлежит файл, и других пользователей. Если у пользователя нет данного разрешения, флаг для этого заменяется строкой "-". Пример:: echo getfperm ("/ etc / passwd") Надеемся (с точки зрения безопасности) отобразить строку "rw-r - r--" или даже "rw -------".
Минимальный пример:
:call setfperm("foo.txt","rwxrwxrwx")
Это добавляет разрешения на чтение, запись и выполнение файла "foo.txt" в текущем каталоге.