Согласно этой статье в Википедии Сравнение текстовых редакторов VIM и других. Я собирался предложить Geany, но есть? в поле для большой поддержки файлов ...
EDIT: я пошел вперед и попытался с geany и сдался после ожидания 10 минут с 3 ядрами, привязанными и в основном всей моей памятью (виртуальной и физической), использующей все время ... Не убедительно, так как это могло бы открыть его, если бы я был более терпеливым. Я искал и не нашел никаких настроек / предпочтений для обработки больших файлов по-разному.
Мне больше нравится ответ fred.bear.
chmod +x /path/to/python/scripts/dir/*.py
Выполнит исполняемый файл всеми текущими файлами .py в каталоге /path/to/python/scripts/dir.
Я не знаю об автоматическом инструменте, как вы описываете. Возможно, в вашем редакторе может быть макрос, но это не тот редактор, который я использую. -
)В качестве первого шага вы можете попробовать это в своем ~/.vimrc:
autocmd BufWritePost *.py silent execute "! chmod +x %"
Это запускает chmod +x в имени файла для всех файлов .py при их записи. Глядя на список событий (:h events), я не могу найти событие, в котором создается новый файл, поэтому мне приходилось рассчитывать на запуск при каждом его написании. В первый раз, когда применяется chmod, файл изменяется, и vim предупредит вас об этом: "test.py" [New] 0L, 0C written
W16: Warning: Mode of file "test.py" has changed since editing started
See ":help W16" for more info.
[O]K, (L)oad File:
Я попробовал пару трюков, чтобы сделать это autoread только для этого изменения, но не повезло. Поэтому вам придется дважды нажать Enter. При запуске сценарий ниже автоматически изменяет разрешения всех файлов данного типа (расширения) в каталоге (один раз). После этого скрипт проверяет каталог каждые 5 секунд для новых добавленных файлов и изменяет разрешения, если файл имеет данный тип (в данном случае файл .py)
Он имеет несколько параметров : в этом случае он делает исполняемые исполняемые файлы новыми, но возможны и другие действия, как определено в строке: command = "chmod +x". Кроме того, вы можете определить (изменить), какие файлы (расширения языка) должны быть выполнены.
Скопировать сценарий ниже в пустой файл. Сохраните его как change_permission.py и запустите его в фоновом режиме командой:
python3 <script> <folder_to_watch>
#!/usr/bin/env python3
import subprocess
import time
import sys
directory = sys.argv[1]
command = "chmod +x"; check_interval = 5; extensions = (".py")
def current_files():
read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
return [item for item in read.split("\n") if item[item.rfind("."):] in extensions]
initial_files = current_files()
for file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
while True:
update = current_files()
for file in update:
if not file in initial_files:
subprocess.call(["/bin/bash", "-c", command+" "+directory+"/"+file])
initial_files = update
time.sleep(check_interval)
* Примечание: если вам нужны привилегии sudo, просто запустите скрипт с sudo
Вот некоторая информация с несколькими командами, которые могут помочь, посмотрите http://ss64.com/bash/syntax-permissions.html
find . -type f -print0 | xargs -0 chmod 775 # change all file permissions in current directory
find . -type d -print0 | xargs -0 chmod 755 # change directory permissions
Вы можете использовать следующий сценарий заголовка. Поместите mkscript.sh в свой $PATH. Выполните mkscript.sh из рабочего каталога, где хранятся скрипты python. Сценарий создает полезную информацию заголовка, записывает сценарий и делает его исполняемым, а затем открывает выбранный редактор; в вашем случае VIM.
Я модифицировал mkscript.sh, он будет создавать скрипты с расширением python *.py
Вызывается переменная ${PYTHON_VERSION}, поэтому PYTHON_VERSION="/usr/bin/python --version" добавлена в /etc/environment ] файл. Посмотрите на http://ss64.com/bash/syntax-permissions.html
#!/bin/bash -
#title :mkscript.sh
#description :This script will make a header for a PYTHON script.
#author :bgw
#date :20111101
#version :0.4
#usage :bash mkscript.sh
#notes :Install Vim and Emacs to use this script.
#bash_version :4.1.5(1)-release
#==============================================================================
today=$(date +%Y%m%d)
div=======================================
/usr/bin/clear
_select_title(){
# Get the user input.
printf "Enter a title: " ; read -r title
# Remove the spaces from the title if necessary.
title=${title// /_}
# Convert uppercase to lowercase.
title=${title,,}
# Add .sh to the end of the title if it is not there already.
[ "${title: -3}" != '.py' ] && title=${title}.py
# Check to see if the file exists already.
if [ -e $title ] ; then
printf "\n%s\n%s\n\n" "The script \"$title\" already exists." \
"Please select another title."
_select_title
fi
}
_select_title
printf "Enter a description: " ; read -r dscrpt
printf "Enter your name: " ; read -r name
printf "Enter the version number: " ; read -r vnum
# Format the output and write it to a file.
printf "%-16s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%-16s%-8s\n\
%s\n\n\n" '#!/usr/bin/python -' '#title' ":$title" '#description' \
":${dscrpt}" '#author' ":$name" '#date' ":$today" '#version' \
":$vnum" '#usage' ":./$title" '#notes' ':' '#python_version' \
":${PYTHON_VERSION}" \#$div${div} > $title
# Make the file executable.
chmod +x $title
/usr/bin/clear
_select_editor(){
# Select between Vim or Emacs.
printf "%s\n%s\n%s\n\n" "Select an editor." "1 for Vim." "2 for Emacs."
read -r editor
# Open the file with the cursor on the twelth line.
case $editor in
1) vim +12 $title
;;
2) emacs +12 $title &
;;
*) /usr/bin/clear
printf "%s\n%s\n\n" "I did not understand your selection." \
"Press <Ctrl-c> to quit."
_select_editor
;;
esac
}
_select_editor