Окна Emacs, кадры, сервер и клиенты: потоки или процессы?

cd parent_directory/

for i in {-11..-10}
do
   for j in -2 0
   do
      (
      cd  "E${i}_G/E${j}_U/"
      ls -l ander ander.band ander.data
      cat ander.in
      cat ander.log
      pwd
      )
   done
done

Примечания:

  • Вы можете зациклиться на ряде чисел, используя обозначение скобок:

    для i в {-11. .-10}
    
  • Можно также выполнить цикл над явным списком элементов:

    для j в -2 0.
    
  • Можно изменить каталог так, чтобы в нем было место, зависящее от переменных:

    cd "E${i}_G/E${j}_U/".
    
  • Аргументом к команде cd является директория, указанная относительно текущей директории. После того, как мы выполнили нашу работу в этой директории, мы хотим вернуться обратно в директорию parent_. Есть много способов справиться с этим, но один простой способ сделать это - поместить команду cd и команды, которые должны быть выполнены в этом каталоге, в подоболочку, обозначенную паренами. После выхода из парен, каталог автоматически восстанавливается в том виде, в котором он был до этого.

0
07.08.2014, 05:16
1 ответ
  1. В этом контексте «экземпляр Emacs» относится к одному процессу.

  2. Нет, Emacs не держит поток для каждого открытого буфера. В моем текущем сеансе 129 открытых буферов (около 100 открыты из файлов, остальные являются буферами вывода для определенных подчиненных процессов - интерпретаторов python, ruby, elixir, папки wanderlust и сводных представлений, средств проверки синтаксиса flycheck-mode и т.д. .) но только 3 активных потока.

  3. Основным процессом Emacs является сервер, и каждый emacsclient работает в своем собственном процессе, взаимодействуя с сервером через сокеты домена UNIX. Когда сервер получает запрос на соединение от клиента, он открывает запрошенный файл в новом буфере в новом окне во фрейме сервера. emacsclient имеет единственную функцию отправки запрошенного файла на сервер и ожидания возврата сервера после того, как вы закончите редактирование буфера файла.

  4. Обычно клиенты и серверы работают как отдельные процессы - нет гарантии, что клиент и сервер находятся в одной сети, не говоря уже об одном и том же компьютере. Некоторые серверы запускают новый поток для обработки каждого входящего клиентского соединения (например, для этого может быть построен Apache), но клиент - это отдельный процесс, возможно, на другой машине на другой стороне планеты. И обратите внимание, что разделяемая память - это форма межпроцессного взаимодействия, как, например, сокеты домена UNIX.

3
28.01.2020, 02:28

Теги

Похожие вопросы