diff --git a/core/modules/field_ui/config/field_ui.settings.yml b/core/modules/field_ui/config/field_ui.settings.yml
new file mode 100644
index 0000000..046f9a4
--- /dev/null
+++ b/core/modules/field_ui/config/field_ui.settings.yml
@@ -0,0 +1 @@
+field_prefix: field_
diff --git a/core/modules/field_ui/config/schema/field_ui.schema.yml b/core/modules/field_ui/config/schema/field_ui.schema.yml
new file mode 100644
index 0000000..fe7e95c
--- /dev/null
+++ b/core/modules/field_ui/config/schema/field_ui.schema.yml
@@ -0,0 +1,9 @@
+# Schema for configuration files of the Field UI module.
+
+field_ui.settings:
+  type: mapping
+  label: 'Field UI settings'
+  mapping:
+    field_prefix:
+      type: string
+      label: 'The prefix for new fields created via Field UI'
diff --git a/core/modules/field_ui/field_ui.install b/core/modules/field_ui/field_ui.install
index 8ce3e2c..f201ed6 100644
--- a/core/modules/field_ui/field_ui.install
+++ b/core/modules/field_ui/field_ui.install
@@ -43,3 +43,14 @@ function field_ui_update_8001() {
     }
   }
 }
+
+/**
+ * Moves field_prefix to config.
+ *
+ * @ingroup config_upgrade
+ */
+function field_ui_update_8002() {
+  update_variables_to_config('field_ui.settings', array(
+    'field_prefix' => 'field_prefix',
+  ));
+}
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php
index f02e2eb..8e3a6bf 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php
@@ -8,6 +8,7 @@
 namespace Drupal\field_ui;
 
 use Drupal\field_ui\OverviewBase;
+use Drupal\field\Plugin\Core\Entity\Field;
 
 /**
  * Field UI field overview form.
@@ -204,6 +205,9 @@ public function buildForm(array $form, array &$form_state, $entity_type = NULL,
       );
     }
 
+    // Field prefix.
+    $field_prefix = config('field_ui.settings')->get('field_prefix');
+
     // Additional row: add new field.
     $max_weight = field_info_max_weight($this->entity_type, $this->bundle, 'form');
     $field_type_options = field_ui_field_type_options();
@@ -254,12 +258,13 @@ public function buildForm(array $form, array &$form_state, $entity_type = NULL,
           '#title' => t('New field name'),
           '#title_display' => 'invisible',
           // This field should stay LTR even for RTL languages.
-          '#field_prefix' => '<span dir="ltr">field_',
+          '#field_prefix' => '<span dir="ltr">' . $field_prefix,
           '#field_suffix' => '</span>&lrm;',
           '#size' => 15,
           '#description' => t('A unique machine-readable name containing letters, numbers, and underscores.'),
-          // 32 characters minus the 'field_' prefix.
-          '#maxlength' => 26,
+          // Calculate characters depending on the length of the field prefix
+          // setting. Maximum length is 32.
+          '#maxlength' => Field::ID_MAX_LENGTH - strlen($field_prefix),
           '#prefix' => '<div class="add-new-placeholder">&nbsp;</div>',
           '#machine_name' => array(
             'source' => array('fields', $name, 'label'),
@@ -448,8 +453,8 @@ protected function validateAddNew(array $form, array &$form_state) {
       else {
         $field_name = $field['field_name'];
 
-        // Add the 'field_' prefix.
-        $field_name = 'field_' . $field_name;
+        // Add the field prefix.
+        $field_name = config('field_ui.settings')->get('field_prefix') . $field_name;
         form_set_value($form['fields']['_add_new_field']['field_name'], $field_name, $form_state);
       }
 
