diff --git a/altair/utils/plugin_registry.py b/altair/utils/plugin_registry.py
index 3c57e1af..ad76662f 100644
--- a/altair/utils/plugin_registry.py
+++ b/altair/utils/plugin_registry.py
@@ -138,7 +138,7 @@ class PluginRegistry(Generic[PluginType]):
         self._active = self._plugins[name]
         self._options = options
 
-    def enable(self, name, **options):
+    def enable(self, name=None, **options):
         # type: (str, **Any) -> PluginEnabler
         """Enable a plugin by name.
 
@@ -146,8 +146,9 @@ class PluginRegistry(Generic[PluginType]):
 
         Parameters
         ----------
-        name : string
-            The name of the plugin to enable
+        name : string (optional)
+            The name of the plugin to enable. If not specified, then use the
+            current active name.
         **options :
             Any additional parameters will be passed to the plugin as keyword
             arguments
@@ -157,7 +158,10 @@ class PluginRegistry(Generic[PluginType]):
         PluginEnabler:
             An object that allows enable() to be used as a context manager
         """
+        if name is None:
+            name = self.active
         return PluginEnabler(self, name, **options)
+        
 
     @property
     def active(self):
diff --git a/altair/vegalite/v2/api.py b/altair/vegalite/v2/api.py
index 7ef6b2a9..e8a5ed26 100644
--- a/altair/vegalite/v2/api.py
+++ b/altair/vegalite/v2/api.py
@@ -915,10 +915,42 @@ class TopLevelMixin(mixins.ConfigMethodMixin):
         else:
             return renderers.get()(dct)
 
-    def display(self):
-        """Display chart in Jupyter notebook or JupyterLab"""
+    def display(self, renderer=Undefined, theme=Undefined, actions=Undefined,
+                **kwargs):
+        """Display chart in Jupyter notebook or JupyterLab
+
+        Parameters are passed as options to vega-embed within supported frontends.
+        See https://github.com/vega/vega-embed#options for details.
+
+        Parameters
+        ----------
+        renderer : string ('canvas' or 'svg')
+            The renderer to use
+        theme : string
+            The Vega theme name to use; see https://github.com/vega/vega-themes
+        actions : bool or dict
+            Specify whether action links ("Open In Vega Editor", etc.) are
+            included in the view.
+        **kwargs :
+            Additional parameters are also passed to vega-embed as options.
+        """
         from IPython.display import display
-        display(self)
+
+        if renderer is not Undefined:
+            kwargs['renderer'] = renderer
+        if theme is not Undefined:
+            kwargs['theme'] = theme
+        if actions is not Undefined:
+            kwargs['actions'] = actions
+
+        if kwargs:
+            options = renderers.options.copy()
+            options['embed_options']= options.get('embed_options', {}).copy()
+            options['embed_options'].update(kwargs)
+            with renderers.enable(**options):
+                display(self)
+        else:
+            display(self)
 
     def serve(self, ip='127.0.0.1', port=8888, n_retries=50, files=None,
               jupyter_warning=True, open_browser=True, http_server=None,
diff --git a/doc/user_guide/configuration.rst b/doc/user_guide/configuration.rst
index 934e0275..dee77175 100644
--- a/doc/user_guide/configuration.rst
+++ b/doc/user_guide/configuration.rst
@@ -295,15 +295,6 @@ fill unless otherwise specified:
         y='Miles_per_Gallon:Q'
     )
 
-
-If you want to restore the default theme, use:
-
-.. altair-plot::
-   :output: none
-
-   alt.themes.enable('default')
-	    
-
 For more ideas on themes, see the `Vega Themes`_ repository.
 
 

ENH: allow specification of embed options from chart.display()
See https://github.com/altair-viz/altair/issues/688#issuecomment-395523194
diff --git a/altair/utils/tests/test_plugin_registry.py b/altair/utils/tests/test_plugin_registry.py
index 3b3d2945..6aa785e9 100644
--- a/altair/utils/tests/test_plugin_registry.py
+++ b/altair/utils/tests/test_plugin_registry.py
@@ -41,8 +41,14 @@ def test_plugin_registry_extra_options():
     assert plugins.get()(3) == 9
 
     plugins.enable('metadata_plugin', p=3)
+    assert plugins.active == 'metadata_plugin'
     assert plugins.get()(3) == 27
 
+    # enabling without changing name
+    plugins.enable(p=2)
+    assert plugins.active == 'metadata_plugin'
+    assert plugins.get()(3) == 9
+
 
 def test_plugin_registry_context():
     plugins = GeneralCallableRegistry()
@@ -72,3 +78,13 @@ def test_plugin_registry_context():
 
     assert plugins.active == ''
     assert plugins.options == {}
+
+    # Enabling without specifying name uses current name
+    plugins.enable('default', p=2)
+
+    with plugins.enable(p=6):
+        assert plugins.active == 'default'
+        assert plugins.options == {'p': 6}
+
+    assert plugins.active == 'default'
+    assert plugins.options == {'p': 2}
diff --git a/altair/vegalite/v2/tests/test_display.py b/altair/vegalite/v2/tests/test_display.py
new file mode 100644
index 00000000..80dce231
--- /dev/null
+++ b/altair/vegalite/v2/tests/test_display.py
@@ -0,0 +1,63 @@
+from contextlib import contextmanager
+
+import pytest
+
+import altair as alt
+
+
+@contextmanager
+def check_render_options(**options):
+    """
+    Context manager that will assert that alt.renderers.options are equivalent
+    to the given options in the IPython.display.display call
+    """
+    import IPython.display
+    def check_options(obj):
+        assert alt.renderers.options == options
+    _display = IPython.display.display
+    IPython.display.display = check_options
+    try:
+        yield
+    finally:
+        IPython.display.display = _display
+
+
+def test_check_renderer_options():
+    # this test should pass
+    with check_render_options():
+        from IPython.display import display
+        display(None)
+
+    # check that an error is appropriately raised if the test fails
+    with pytest.raises(AssertionError):
+        with check_render_options(foo='bar'):
+            from IPython.display import display
+            display(None)
+
+
+def test_display_options():
+    chart = alt.Chart('data.csv').mark_point().encode(x='foo:Q')
+
+    # check that there are no options by default
+    with check_render_options():
+        chart.display()
+
+    # check that display options are passed
+    with check_render_options(embed_options={'tooltip': False, 'renderer': 'canvas'}):
+        chart.display('canvas', tooltip=False)
+
+    # check that above options do not persist
+    with check_render_options():
+        chart.display()
+
+    # check that display options augment rather than overwrite pre-set options
+    with alt.renderers.enable(embed_options={'tooltip': True, 'renderer': 'svg'}):
+        with check_render_options(embed_options={'tooltip': True, 'renderer': 'svg'}):
+            chart.display()
+
+        with check_render_options(embed_options={'tooltip': True, 'renderer': 'canvas'}):
+            chart.display('canvas')
+
+    # check that above options do not persist
+    with check_render_options():
+        chart.display()

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
alabaster==0.7.16
-e git+https://github.com/altair-viz/altair.git@6b9d5eef7dd850388d7f01ce5eed33bda21000be#egg=altair
asttokens==3.0.0
attrs==25.3.0
babel==2.17.0
certifi==2025.1.31
charset-normalizer==3.4.1
decorator==5.2.1
docutils==0.21.2
entrypoints==0.4
exceptiongroup==1.2.2
executing==2.2.0
flake8==7.2.0
idna==3.10
imagesize==1.4.1
importlib_metadata==8.6.1
iniconfig==2.1.0
ipython==8.18.1
jedi==0.19.2
Jinja2==3.1.6
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
m2r==0.3.1
MarkupSafe==3.0.2
matplotlib-inline==0.1.7
mccabe==0.7.0
mistune==0.8.4
numpy==2.0.2
packaging==24.2
pandas==2.2.3
parso==0.8.4
pexpect==4.9.0
pluggy==1.5.0
prompt_toolkit==3.0.50
ptyprocess==0.7.0
pure_eval==0.2.3
pycodestyle==2.13.0
pyflakes==3.3.2
Pygments==2.19.1
pytest==8.3.5
python-dateutil==2.9.0.post0
pytz==2025.2
referencing==0.36.2
requests==2.32.3
rpds-py==0.24.0
six==1.17.0
snowballstemmer==2.2.0
Sphinx==7.4.7
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
stack-data==0.6.3
tomli==2.2.1
toolz==1.0.0
traitlets==5.14.3
typing==3.7.4.3
typing_extensions==4.13.0
tzdata==2025.2
urllib3==2.3.0
vega-datasets==0.9.0
wcwidth==0.2.13
zipp==3.21.0

name: altair
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - alabaster==0.7.16
      - asttokens==3.0.0
      - attrs==25.3.0
      - babel==2.17.0
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - decorator==5.2.1
      - docutils==0.21.2
      - entrypoints==0.4
      - exceptiongroup==1.2.2
      - executing==2.2.0
      - flake8==7.2.0
      - idna==3.10
      - imagesize==1.4.1
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - ipython==8.18.1
      - jedi==0.19.2
      - jinja2==3.1.6
      - jsonschema==4.23.0
      - jsonschema-specifications==2024.10.1
      - m2r==0.3.1
      - markupsafe==3.0.2
      - matplotlib-inline==0.1.7
      - mccabe==0.7.0
      - mistune==0.8.4
      - numpy==2.0.2
      - packaging==24.2
      - pandas==2.2.3
      - parso==0.8.4
      - pexpect==4.9.0
      - pluggy==1.5.0
      - prompt-toolkit==3.0.50
      - ptyprocess==0.7.0
      - pure-eval==0.2.3
      - pycodestyle==2.13.0
      - pyflakes==3.3.2
      - pygments==2.19.1
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - referencing==0.36.2
      - requests==2.32.3
      - rpds-py==0.24.0
      - six==1.17.0
      - snowballstemmer==2.2.0
      - sphinx==7.4.7
      - sphinxcontrib-applehelp==2.0.0
      - sphinxcontrib-devhelp==2.0.0
      - sphinxcontrib-htmlhelp==2.1.0
      - sphinxcontrib-jsmath==1.0.1
      - sphinxcontrib-qthelp==2.0.0
      - sphinxcontrib-serializinghtml==2.0.0
      - stack-data==0.6.3
      - tomli==2.2.1
      - toolz==1.0.0
      - traitlets==5.14.3
      - typing==3.7.4.3
      - typing-extensions==4.13.0
      - tzdata==2025.2
      - urllib3==2.3.0
      - vega-datasets==0.9.0
      - wcwidth==0.2.13
      - zipp==3.21.0
prefix: /opt/conda/envs/altair

altair/utils/tests/test_plugin_registry.py::test_plugin_registry_extra_options altair/utils/tests/test_plugin_registry.py::test_plugin_registry_context altair/vegalite/v2/tests/test_display.py::test_display_options
altair/utils/tests/test_plugin_registry.py::test_plugin_registry altair/vegalite/v2/tests/test_display.py::test_check_renderer_options
doc/user_guide/configuration.rst altair/utils/plugin_registry.py altair/vegalite/v2/api.py
doc/user_guide/configuration.rst altair/utils/plugin_registry.py altair/vegalite/v2/api.py